环境
我正在使用 Python 3.4 运行 Anaconda 环境。我使用 PyCharm 作为我的 IDE。
目标
我正在尝试使 pyQt4 QPushButton 连接到自定义函数:
button.clicked().connect([method reference or whatever])
尝试
我试过使用 pyqtSlot()
decorator但是当我运行它抛出的代码时:
NameError: name 'pyqtSlot' is not defined
我使用了以下应该包含该装饰器的导入:
from PyQt4 import QtCore, QtGui
我还尝试将我的方法更改为它自己的包含调用方法的可调用类。
我在各种尝试中收到的一般错误消息是这样的:
TypeError: native Qt signal is not callable
问题
老实说,在这一点上,我几乎不知道该去哪里,或者您可能需要哪些细节来诊断问题。谁能告诉我如何将它们放在一起?
最佳答案
pyqtSlot()
应该从 PyQt4.QtCore
导入:
from PyQt4.QtCore import pyqtSlot
它也可以用作 @QtCore.pyqtSlot()
因为您已经导入了 QtCore
。
您收到错误消息 TypeError: native Qt signal is not callable
因为插槽 clicked
should be connected without parentheses:
button.clicked.connect([method reference or whatever])
您可以从 PyQt4 包中的简单示例开始,例如 examples/widgets/tetrix.py
:
startButton = QtGui.QPushButton("&Start")
startButton.clicked.connect(self.board.start)
关于python - "TypeError: native Qt signal is not callable"带有自定义插槽,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33049146/