python - "TypeError: native Qt signal is not callable"带有自定义插槽

标签 python qt pyqt4 callable slots

环境

我正在使用 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/

相关文章:

python - 为什么我的按钮的命令在我创建按钮时立即执行,而不是在我单击它时执行?

c++ - Qt:为什么我的图像背景在 LinuxFb 上是绿色的?

c++ - 在 QTableView 中选择多个项目时如何禁用按钮

Python PyQt QWebView 在单击的选项卡中加载站点

python - PyQt4 中保持线程事件

python - 查找用于连接到我的套接字服务器的主机名

python - Django - 连续的 dumpdata 调用失败,即使单独运行时工作正常

python - 清理 Pandas 中的数字列

python - 为什么 SLOT ('insertColumn()' ) 在 PyQt 绑定(bind)中失败?

python - PyQt中带有QThread的后台线程