python - 如何将 PyQt 插槽从后台线程连接到 gui 线程

标签 python pyqt

我希望以 pythonic 方式将后台线程中的信号连接到 GUI 线程中的插槽。

我有以下代码片段。

from PyQt4.QtCore import * 
class CompanyPresenter(QObject): 
    fieldChangeSignal = pyqtSignal(str, str)
    def __init__(self,model,view):
        self.model = model       # a CompanyModel 
        self.view = view         # a CompanyView
        self.fieldChangeSignal.connect(view.setField)

我收到此错误(在连接线上)

TypeError:pyqtSignal 必须绑定(bind)到 QObject,而不是“CompanyPresenter”

但是CompanyPresenter继承自QObject所以是一个QObject。怎么了?

(我希望 Presenter 和 GUI 最终在不同的线程中运行,但我还没有做到这一点。还没有线程)。

最佳答案

你忘了这个:

def __init__(self,model,view):
    super(CompanyPresenter, self).__init__() # this!!!!!!!!!

添加这个会起作用。(已测试)

关于python - 如何将 PyQt 插槽从后台线程连接到 gui 线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4708436/

相关文章:

qt - 在Qt4中,如何检查paintEvent是否由resize触发?

python - 从 URL 设置 QIcon() 像素图

python - PyGTK 或 PyQT 是制作 GTK 原生 Python 应用程序的首选吗?

python - 合并具有相同标题的列没有重复的列

python - 从 Dataframe 列中删除部分字符串

python - 如何使用 KDTree.query_ball_tree 在 x,y 网格中查找点集

python - 如何在 Flask 中设置不同的子域(使用蓝图)?

python - 请求 POST 方法中的位置

python - 更改现有图形的样式

python - 来自另一个 QDialog 的 QDialog 未显示