解决PySide+Python子线程更新UI线程的问题


Posted in Python onJanuary 11, 2019

在我开发的系统,需要子线程去运行,然后把运行的结果发给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线程的问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
探索Python3.4中新引入的asyncio模块
Apr 08 Python
Python文本特征抽取与向量化算法学习
Dec 22 Python
Python 中Pickle库的使用详解
Feb 24 Python
Python 25行代码实现的RSA算法详解
Apr 10 Python
DRF跨域后端解决之django-cors-headers的使用
Jan 27 Python
pybind11和numpy进行交互的方法
Jul 04 Python
python单线程下实现多个socket并发过程详解
Jul 27 Python
如何爬取通过ajax加载数据的网站
Aug 15 Python
np.newaxis 实现为 numpy.ndarray(多维数组)增加一个轴
Nov 30 Python
Python 中如何实现参数化测试的方法示例
Dec 10 Python
深度学习详解之初试机器学习
Apr 14 Python
python中super()函数的理解与基本使用
Aug 30 Python
python PrettyTable模块的安装与简单应用
Jan 11 #Python
对python多线程中互斥锁Threading.Lock的简单应用详解
Jan 11 #Python
pyqt5实现俄罗斯方块游戏
Jan 11 #Python
python之线程通过信号pyqtSignal刷新ui的方法
Jan 11 #Python
对python多线程中Lock()与RLock()锁详解
Jan 11 #Python
浅谈Python 多进程默认不能共享全局变量的问题
Jan 11 #Python
Python设计模式之组合模式原理与用法实例分析
Jan 11 #Python
You might like
php自动获取关键字的方法
2015/01/06 PHP
php通过function_exists检测函数是否存在的方法
2015/03/18 PHP
使用新浪微博API的OAuth认证发布微博实例
2015/03/27 PHP
laravel实现分页样式替换示例代码(增加首、尾页)
2017/09/22 PHP
PHP实现合并两个排序链表的方法
2018/01/19 PHP
JavaScript和ActionScript的交互实现代码
2010/08/01 Javascript
js操作textarea方法集合封装(兼容IE,firefox)
2011/02/22 Javascript
jQuery.holdReady()使用方法
2014/05/20 Javascript
jQuery中关于ScrollableGridPlugin.js(固定表头)插件的使用逐步解析
2014/07/17 Javascript
轻松创建nodejs服务器(7):阻塞操作的实现
2014/12/18 NodeJs
JavaScript中检查对象property的存在性方法介绍
2014/12/30 Javascript
JavaScript判断变量是否为数组的方法(Array)
2016/02/24 Javascript
浅谈EasyUI常用控件的禁用方法
2016/11/09 Javascript
js编写简单的计时器功能
2017/07/15 Javascript
Cropper.js 实现裁剪图片并上传(PC端)
2017/08/20 Javascript
JS使用数组实现的队列功能示例
2019/03/04 Javascript
vue如何限制只能输入正负数及小数
2019/07/04 Javascript
微信小程序 SOTER 生物认证DEMO 指纹识别功能
2019/12/13 Javascript
微信小程序如何获取地址
2019/12/24 Javascript
js函数和this用法实例分析
2020/03/13 Javascript
[01:10]DOTA2亚洲邀请赛 征战号角响彻全场
2015/01/06 DOTA
Python的设计模式编程入门指南
2015/04/02 Python
Python轻量级ORM框架Peewee访问sqlite数据库的方法详解
2017/07/20 Python
Python编程在flask中模拟进行Restful的CRUD操作
2018/12/28 Python
python数据库编程 ODBC方式实现通讯录
2020/03/27 Python
Python unittest框架操作实例解析
2020/04/13 Python
Python实现寻找回文数字过程解析
2020/06/09 Python
澳大利高级泳装品牌:Bondi Born
2018/05/23 全球购物
小蚁科技官方商店:YI Technology
2019/08/23 全球购物
Servlet如何得到客户端机器的信息
2014/10/17 面试题
区域总监的岗位职责
2013/11/21 职场文书
文明礼仪事迹材料
2014/01/09 职场文书
航海技术专业毕业生求职信
2014/04/06 职场文书
信仰观后感
2015/06/03 职场文书
地震捐款简报
2015/07/21 职场文书
2019求职信大礼包
2019/05/15 职场文书