Python &引用;TypeError:本机Qt信号不可调用;使用自定义插槽
环境 我正在用Python 3.4运行一个Anaconda环境。我正在使用PyCharm作为我的IDE 目标 我正在尝试使pyQt4 QPushButton连接到自定义函数:Python &引用;TypeError:本机Qt信号不可调用;使用自定义插槽,python,qt,pyqt4,callable,slots,Python,Qt,Pyqt4,Callable,Slots,环境 我正在用Python 3.4运行一个Anaconda环境。我正在使用PyCharm作为我的IDE 目标 我正在尝试使pyQt4 QPushButton连接到自定义函数: button.clicked().connect([method reference or whatever]) 尝试 我尝试过使用,但当我运行代码时,它会抛出: NameError: name 'pyqtSlot' is not defined 我使用了以下导入,其中应包括该装饰器: from PyQt4 impor
button.clicked().connect([method reference or whatever])
尝试
我尝试过使用,但当我运行代码时,它会抛出:
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不可调用
,因为单击的插槽应在没有括号的情况下连接:
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)
如果导入了QtCore
,请使用QtCore.pyqtSlot
。此外,您不必调用clicked
,只需单击按钮.clicked.connect(一些函数)
。此处不需要pyqtlot
装饰程序。只要从clicked()
中删除括号即可。@QtCore.pyqtSlot()修复了第一个错误,从“clicked”中删除括号修复了类型错误,我不敢相信我错过了。非常感谢你!如果使用PyQt5“from PyQt5.QtCore import pyqtlot”Hi All-我似乎无法以您提到的方式从PyQt4或PyQt5导入pyqtlot?它似乎不存在于QtCore??