"TypeError: native Qt signal is not callable" with custom slots
"TypeError: native Qt signal is not callable" with custom slots
环境
我正在 运行 使用 Python 3.4 构建 Anaconda 环境。我正在使用 PyCharm 作为我的 IDE。
Objective
我正在尝试使 pyQt4 QPushButton 连接到自定义函数:
button.clicked().connect([method reference or whatever])
尝试次数
我已经尝试使用 pyqtSlot()
decorator 但是当我 运行 它抛出的代码:
NameError: name 'pyqtSlot' is not defined
我使用了以下应该包含该装饰器的导入:
from PyQt4 import QtCore, QtGui
我还尝试将我的方法更改为包含调用方法的自己的可调用 class。
我在各种尝试中收到的一般错误消息是这样的:
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
应该在没有括号的情况下连接:
button.clicked.connect([method reference or whatever])
您可以从 PyQt4 包中的简单示例开始,例如 examples/widgets/tetrix.py
:
startButton = QtGui.QPushButton("&Start")
startButton.clicked.connect(self.board.start)
object.signal().connect(slot())
应替换为 object.signal.connect(slot)
环境
我正在 运行 使用 Python 3.4 构建 Anaconda 环境。我正在使用 PyCharm 作为我的 IDE。
Objective
我正在尝试使 pyQt4 QPushButton 连接到自定义函数:
button.clicked().connect([method reference or whatever])
尝试次数
我已经尝试使用 pyqtSlot()
decorator 但是当我 运行 它抛出的代码:
NameError: name 'pyqtSlot' is not defined
我使用了以下应该包含该装饰器的导入:
from PyQt4 import QtCore, QtGui
我还尝试将我的方法更改为包含调用方法的自己的可调用 class。
我在各种尝试中收到的一般错误消息是这样的:
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
应该在没有括号的情况下连接:
button.clicked.connect([method reference or whatever])
您可以从 PyQt4 包中的简单示例开始,例如 examples/widgets/tetrix.py
:
startButton = QtGui.QPushButton("&Start")
startButton.clicked.connect(self.board.start)
object.signal().connect(slot())
应替换为 object.signal.connect(slot)