PyQt的信号/槽跨类使用

2 投票
1 回答
2808 浏览
提问于 2025-04-16 02:48

我可以把两个不同类的对象连接起来吗?

比如说,我想让按钮1被点击时,能够清空行2。

class A(QGroupBox):
    def __init__(self, parent=None):
        super(A, self).__init__(parent)
        self.button1= QPushButton('bt1')
        self.button1.show()

class B(QGroupBox):
    def __init__(self, parent=None):
        super(B, self).__init__(parent)
        self.line2 = QLineEdit()
        self.line2.show()

ob1 = A()
ob2 = B()

1 个回答

3

没错,你可以在对象B里面创建一个方法,这个方法和对象A里的一个信号连接起来。注意一下connect是怎么调用的(这只是一个例子):

    self.connect(self.okButton, QtCore.SIGNAL("clicked()"),
                 self, QtCore.SLOT("accept()"))

这里的第三个参数是包含槽(slot)的方法的对象,第四个参数是槽的名字。发送信号的对象和接收信号的对象可以是不同的。

撰写回答