python - PyQt 的 Signal/SLOT 不同类

标签 python pyqt signals slot

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

假设我希望button1的clicked()信号清除line2

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

最佳答案

是的,在对象 B 中创建一个与对象 A 中的信号绑定(bind)的方法。请注意 connect 是如何调用的(这只是一个示例):

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

第三个参数是带有槽的对象,第四个参数是槽名称。发送和接收对象肯定可以不同。

关于python - PyQt 的 Signal/SLOT 不同类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3486265/

相关文章:

c - 为什么我的程序在使用 sigaction 时会出现异常行为?

python - 派生类在 PySide (Qt/PyQt) 的错误线程中接收信号

python - 如何使用 QtCore.Qt.UserRole 在 QListWidgetItem 中显示部分粗体文本

python - 在连接的项目更改时更新自定义 QGraphicsItem 的位置

python - NumPy 标量、广播和 __iadd__ 方法

c++ - SigCgt 值未在/proc/<pid>/status 文件中更新?

c++ - Qt 插槽未被调用

python - 在 pytube3 中实现 progress_bar 时出错

python - 如何对同一数据帧进行求和、平均、计数分组和标准差?

python - Google 应用引擎 TypeError 问题