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

Ian*_*Ian 9 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)
Run Code Online (Sandbox Code Playgroud)

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

TypeError:pyqtSignal必须绑定到QObject,而不是'CompanyPresenter'

但是CompanyPresenter继承自QObject,所以它是一个QObject.怎么了?

(我希望Presenter和GUI最终在不同的线程中运行,但我还没有那么远.还没有线程).

lin*_*ida 23

你忘了这个:

def __init__(self,model,view):
    super(CompanyPresenter, self).__init__() # this!!!!!!!!!
Run Code Online (Sandbox Code Playgroud)

添加这将工作.(测试)