Python 为什么Qt信号也链接到class connect方法?
我遇到了一个奇怪的错误,虽然我能克服它,但我想知道是否有人知道这里发生了什么。如果我设置了一个signal,并且有一个名为Python 为什么Qt信号也链接到class connect方法?,python,pyside,Python,Pyside,我遇到了一个奇怪的错误,虽然我能克服它,但我想知道是否有人知道这里发生了什么。如果我设置了一个signal,并且有一个名为connect的方法,那么signals connect方法将被class one覆盖 当我使用connect方法将UI链接到函数时,我花了很多时间才弄明白,这绝对不是python行为,所以我的主要问题是为什么会发生这种情况 下面是一个导致错误的示例PyQt signal connect()正好取1个参数(给定4个): 如果您提供connect3个参数输入并返回True,则信
connect
的方法,那么signals connect方法将被class one覆盖
当我使用connect
方法将UI链接到函数时,我花了很多时间才弄明白,这绝对不是python行为,所以我的主要问题是为什么会发生这种情况
下面是一个导致错误的示例PyQt signal connect()正好取1个参数(给定4个)
:
如果您提供connect
3个参数输入并返回True
,则信号正常。尝试使用以下方法调试:
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
问题不是信号返回什么,而是我不能使用main window.connect
或者它覆盖QtCore.signal.connect
,这看起来很奇怪,pyside就是这样工作的。如果您认为它是错误的,那么在这里报告它是没有意义的:您需要与pyside开发人员进行讨论。
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)