解决PySide+Python子线程更新UI线程的问题
2019-01-13 00:01
633 查看
在我开发的系统,需要子线程去运行,然后把运行的结果发给UI线程,让UI线程知道运行的进度。
首先创建线程很简单
def newThread(self): d = Data() print '子线程的运行' t1 = threading.Thread(target=newThread) t1.setDaemon(True) t1.start()
之后我发现用子线程去调用UI线程是行不通的,只能通过信号和槽来实现,于是
首先,定义一个类,让他实现PySide.QtCore.QObject类
class Data(PySide.QtCore.QObject): #定义信号 mySignal = Signal() def __init__(self): #这句话很重要 super(Data, self).__init__() def run(self): mySignal.emit()
然后再把主线程的方法绑定到该槽上去
QtCore.QObject.connect(Data的实例,QtCore.SIGNAL('mySignal()'),'主线程的方法')
最后,就可以在子线程执行run方法的时候,就会调用UI线程的方法
以上这篇解决PySide+Python子线程更新UI线程的问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。
您可能感兴趣的文章:
相关文章推荐
- 4000 解决PySide+Python子线程更新UI线程
- 多线程委托之跨线程问题分析--在创建窗口句柄之前,不能在控件上调用 Invoke 或 BeginInvoke(解决方法已更新)
- wpf解决progressbar更新问题(不用线程)
- 安卓4.0以后主线程访问网络问题(NetworkOnMainThreadException)解决方法及子线程更新ui
- Android 在其他线程中更新UI线程的解决方法
- C# Winform使用线程,委托定时更新界面UI控件,解决界面卡顿问题
- C# 线程中更新ListView某单元格导致闪烁问题的解决
- android Thread 非线程更新UI界面(handler,runOnUiThread)解决图片加载慢的问题
- 解决 Updatedata不能更新、报错问题。(主要是不同的类、线程中出现的)
- Android 在其他线程中更新UI线程的解决方法
- Android 在其他线程中更新UI线程的解决方法
- android 在其他线程中更新UI线程的解决方法
- c#非委托方式在子线程里操作UI控件(实际上运算逻辑在子线程,更新还是在主线程,解决了UI界面无响应的问题)
- 用SynchronizationContext解决界面的更新线程数据问题
- 解决listview出现线程更新错误问题
- ListView中开启线程查询更新数据导致的ViewHolder错乱问题解决
- Android 在其他线程中更新UI线程的解决方法
- 玩转Web之servlet(五)---- 怎样解决servlet的线程安全问题
- 另类解决c3p0连接池获取连接时候长时间阻塞线程问题
- QT Creator 使用 design 修改 ui界面编译后界面未更新问题的解决 From EricQu