如何将后台线程中的PyQt槽连接到GUI线程

9

我希望以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必须绑定到QObject,而不是'CompanyPresenter'

但是CompanyPresenter继承自QObject,所以它是一个QObject。发生了什么?

(我希望Presenter和GUI最终在不同的线程中运行,但我还没有实现。目前还没有线程)。

1个回答

23

你忘记了这个:

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

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接