【发布时间】:2021-07-07 08:10:59
【问题描述】:
我正在学习pyqt5 看看下面的代码
qbtn = QPushButton('Quit', self)
qbtn.clicked.connect(QApplication.instance().quit)
qtwidgets.py 中的点击签名
def clicked(self, checked: bool = ...) -> None: ...
clicked 方法的实现在哪里? 它是如何不可调用的,我的意思是它的方法对吗?
print (qbtn.clicked())
输出:
TypeError: native Qt signal is not callable
最后,如果它没有任何实现,它将如何影响 QPushButton ?
print(qbtn)
print (qbtn.clicked)
print (qbtn.clicked.connect)
输出:
<PyQt5.QtWidgets.QPushButton object at 0x7f963ca88160>
<bound PYQT_SIGNAL clicked of QPushButton object at 0x7f963ca88160>
<built-in method connect of PyQt5.QtCore.pyqtBoundSignal object at 0x7f963ca91cc0>
【问题讨论】:
-
您在哪里看到“qtwidgets.py 中的点击签名”?
-
不幸的是我错过了拼写文件的名称它是 .pyi 和 ''i'' 代表接口因此在这种类型的文件中没有实现但主要问题仍然存在(如何点击方法不可调用)
-
qbtn.clicked不是方法,它是绑定到信号的属性。通过调用其emit方法(即qbtn.clicked.emit(qbtn.checked()))发出信号。