Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/226.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python &引用;TypeError:本机Qt信号不可调用;使用自定义插槽_Python_Qt_Pyqt4_Callable_Slots - Fatal编程技术网

Python &引用;TypeError:本机Qt信号不可调用;使用自定义插槽

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

环境

我正在用Python 3.4运行一个Anaconda环境。我正在使用PyCharm作为我的IDE

目标

我正在尝试使pyQt4 QPushButton连接到自定义函数:

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??