我使用PyQt4库开发了一个使用python的应用程序。
好吧,我有很多"连接"例如,当另一个类的方法结束时(例如self.emit(QtCore.SIGNAL('some_signal(QString, QString)'), string1, string2)
)启动一个类的方法。
因此,当我在类的init方法中启动一个信号(如最后一段中的信号)时,它会被忽略。但是如果我创建一个按钮,然后将此按钮连接到方法,并且在此方法中我启动信号,它就可以工作。
任何人都可以解释我为什么,并给我一个解决方案,在类的init方法中启动信号。
提前致谢!!
阿德里亚
答案 0 :(得分:0)
从__init__
方法发送信号可以正常工作:
#!/usr/bin/python
# -*- coding: utf-8 -*-
import sys
from PyQt4 import QtGui, QtCore
class Example(QtGui.QMainWindow):
mySignal = QtCore.pyqtSignal()
def __init__(self):
super(Example, self).__init__()
self.initUI()
print "START - Emit signal from __init__"
self.mySignal.emit()
print "END - Emit signal from __init__"
def initUI(self):
self.mySignal.connect(self.print_signal)
self.setGeometry(300, 300, 290, 150)
self.setWindowTitle('Emit signal')
self.show()
def mousePressEvent(self, event):
self.mySignal.emit()
def print_signal(self):
print "Signal emitted"
def main():
app = QtGui.QApplication(sys.argv)
ex = Example()
sys.exit(app.exec_())
if __name__ == '__main__':
main()