环境
我正在使用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
问题
老实说,此时我几乎不知道该去哪里或者您可能需要哪些细节来诊断问题。谁能让我知道如何把它放在一起?
答案 0 :(得分:6)
pyqtSlot()
导入 PyQt4.QtCore
from PyQt4.QtCore import pyqtSlot
它也可以用作@QtCore.pyqtSlot()
,因为您已导入QtCore
。
您收到错误消息TypeError: native Qt signal is not callable
,因为广告clicked
应该没有括号连接:
button.clicked.connect([method reference or whatever])
您可以从PyQt4包中可以找到的简单示例开始,例如examples/widgets/tetrix.py
:
startButton = QtGui.QPushButton("&Start")
startButton.clicked.connect(self.board.start)
答案 1 :(得分:0)
object.signal().connect(slot())
应该替换为object.signal.connect(slot)