PyQt 信号的问题

Problems with PyQt signals

我使用 PyQt4 库 python 开发了一个应用程序。

嗯,我有很多 "connections" 来启动一个 class 的方法,例如,当另一个方法完成时(例如 self.emit(QtCore.SIGNAL('some_signal(QString, QString)'), string1, string2))。

因此,当我在 class 的 init 方法中发出信号(如上一段中的信号)时,它会被忽略。但是,如果我创建一个按钮,然后将此按钮连接到一个方法,并在该方法中启动信号,它就会起作用。

任何人都可以解释一下原因并给我一个解决方案来在 class 的 init 方法中启动信号。

提前致谢!!

亚德里亚

__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()