PyQt子线程刷新主线程(窗口控件内容)方法
毕设项目和mqtt相关,需要用到python写客户端的交互界面,网上查阅了一番后最后选择了Qt,期间遇到了一些问题,由于自己也是刚接触,所以有什么表达理解不对的地方请指正!
逻辑方面主线程维持窗口,子线程跑mqtt客户端的实例接受数据,然后在主线程窗口中显示,如下图所示。
子线程继承QThread,override其run方法即可实现,问题在接受显示数据这块,一开始直接将接收到的数据直接通过append()
给接受框的话程序会报错说子线程无法改变主线程中接受框的属性,下面说一下我的解决方法。
利用Qt的信号机制解决问题:
from PyQt5.QtCore import *
#继承Qt的多线程类
class Client_RunThread(QThread):
signal