pyqt在类之间传递信号

时间:2017-08-03 01:16:34

标签: python pyqt pyqt5 python-2.x

我见过类似的问题,但似乎没有一个能解决我的问题。

基本上,我的意图非常简单。我尝试将settingsWindow班级的信号传递给centerWindow。因此,我创建了一个名为Qbject的{​​{1}}来传递信号。

在这个例子中,我想要获得一个打印" fire"当我按下brigde中的确定按钮时。但是,一切都没有发生。

我不确定我是否正确定义了所有课程。所有的遗产都是正确的吗?

settingsWindow

1 个答案:

答案 0 :(得分:0)

问题是您正在使用不同的实例,因此它可以更改为以下内容:

class mainWindow(QMainWindow):
    def __init__(self, parent=None):
        super(mainWindow, self).__init__(parent)
        self.wb = bridge()
        self.initUI()
    def initUI(self):
        [...]
        gSettingAction.triggered.connect(lambda: settingsWindow(self.wb))
        [...]
        self.center_window = centerWindow(self.wb, self)
        [...]

class centerWindow(QWidget):
    def __init__(self, bridge, parent=None):
        super(centerWindow, self).__init__(parent)
        self.initUI()
        wb = bridge
        wb.valueUpdated.connect(self.fire)
        [...]

class settingsWindow(QDialog):
    def __init__(self, bridge, parent=None):
        QDialog.__init__(self)
        [...]
        self.wb = bridge
        [...]