为什么Qt Signal也链接到类connect方法?

时间:2018-09-06 11:03:24

标签: python pyside

我遇到一个奇怪的错误,尽管我可以解决它,但我想知道是否有人知道这里发生了什么。如果我设置了信号,并且有一个名为connect的方法,则信号连接方法将被类1覆盖。

我使用connect方法将UI实际链接到函数时花了很多时间,而且这绝对不是pythonic的行为,所以我的主要问题是为什么会这样?

以下是导致错误PyQt signal connect() takes exactly 1 argument (4 given)的示例:

class MainWindow(QtWidgets.QMainWindow):
    testSignal = QtCore.Signal()

    def __init__(self, parent=None, **kwargs):
        super(MainWindow, self).__init__(parent, **kwargs)
        self.testSignal.connect(lambda:None)

    def connect(self):
        pass

如果您给connect 3个参数输入并返回True,则表示信号是满意的。

1 个答案:

答案 0 :(得分:0)

尝试使用以下命令对其进行调试:

class MainWindow(QtWidgets.QMainWindow):
    testSignal = QtCore.Signal()

    def __init__(self, parent=None, **kwargs):
        super(MainWindow, self).__init__(parent, **kwargs)
        self.testSignal.connect(self.debug)

    def debug(self, *args, **kwargs):
        print("got", args, "and", kwargs)

因此您可以看到,哪些值已传递到信号处理程序debug