我有一个PyQt5应用程序正在利用不同的类来收集数据(来自文件系统,psutil,串行链接......)并在PyQt5 GUI中对它进行汇总,这只是从我的主python运行的另一个类脚本。
所有非GUI类都是初始化非Qt感知的,并且正在完成他们的工作(在线程上共享/更新内部数据列表)
from threading import Thread
并且正在使用主窗口上的callable将他们的更新直接推送到GUI,使用了大量的setValue()&#39;:ahem ...这(非常)不好(我 knooOOoow < / em>,我学到了很难的方法:窗口在调整大小时崩溃了)
然后,我理解信号是非Qt类升级到最低限度的方式:QObject。然后我可以有dataReady = pyqtSignal(MyClass)
稍后:self.dataReady.emit(self.myclasses[idx])
当然,然后在GUI(QMainWindow)类中,我捕获/连接此信号:oneOfMyThreadedWorker.dataReady.connect(self.HandleThisMyClass)
这工作得很好....或者太棒了以至于我失去了对GUI的控制(没有响应?!)我认为它太忙了更新GUI,它不能再处理事件了?
因此.... 我怎样才能解决这个问题?我究竟做错了什么 ? QThread对象是(唯一的)方法吗?