如何将 PyQt 插槽从后台线程连接到 gui 线程
Posted
技术标签:
【中文标题】如何将 PyQt 插槽从后台线程连接到 gui 线程【英文标题】:How to connect PyQt slot from background thread to gui thread 【发布时间】:2011-01-16 22:14:03 【问题描述】:我希望以 Python 方式将后台线程中的信号连接到 GUI 线程中的插槽。
我有以下代码sn-p。
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】:你忘了这个:
def __init__(self,model,view):
super(CompanyPresenter, self).__init__() # this!!!!!!!!!
添加这将工作。(测试)
【讨论】:
以上是关于如何将 PyQt 插槽从后台线程连接到 gui 线程的主要内容,如果未能解决你的问题,请参考以下文章