解决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 相关文章推荐
在Python中用keys()方法返回字典键的教程
May 21 Python
python魔法方法-自定义序列详解
Jul 21 Python
一个月入门Python爬虫学习,轻松爬取大规模数据
Jan 03 Python
python psutil库安装教程
Mar 19 Python
python dataframe常见操作方法:实现取行、列、切片、统计特征值
Jun 09 Python
利用python画出折线图
Jul 26 Python
python编写简易聊天室实现局域网内聊天功能
Jul 28 Python
Python函数any()和all()的用法及区别介绍
Sep 14 Python
python 3.3 下载固定链接文件并保存的方法
Dec 18 Python
Python3获取电脑IP、主机名、Mac地址的方法示例
Apr 11 Python
Python接口测试get请求过程详解
Feb 28 Python
解决Windows下python和pip命令无法使用的问题
Aug 31 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生成随机数的方法总结
2018/03/01 PHP
javascript的对话框详解与参数
2007/03/08 Javascript
Javascript 入门基础学习
2010/03/10 Javascript
window.name代替cookie的实现代码
2010/11/28 Javascript
jQuery EasyUI API 中文文档 - Calendar日历使用
2011/10/19 Javascript
js实现仿百度风云榜可重复多次调用的TAB切换选项卡效果
2015/08/31 Javascript
JS实现滑动菜单效果代码(包括Tab,选项卡,横向等效果)
2015/09/24 Javascript
JavaScript实现cookie的写入、读取、删除功能
2015/11/05 Javascript
跟我学习javascript的异步脚本加载
2015/11/20 Javascript
jQuery插件Validate实现自定义校验结果样式
2016/01/18 Javascript
利用D3.js实现最简单的柱状图示例代码
2016/12/09 Javascript
JS中静态页面实现微信分享功能
2017/02/06 Javascript
vuejs开发组件分享之H5图片上传、压缩及拍照旋转的问题处理
2017/03/06 Javascript
Node.js 基础教程之全局对象
2017/08/06 Javascript
AngularJS实现注册表单验证功能
2017/10/16 Javascript
node跨域转发 express+http-proxy-middleware的使用
2018/05/31 Javascript
使用pkg打包ThinkJS项目的方法步骤
2019/12/30 Javascript
浅析Python中signal包的使用
2015/11/13 Python
numpy.linspace 生成等差数组的方法
2018/07/02 Python
浅谈python下含中文字符串正则表达式的编码问题
2018/12/07 Python
python 列表、字典和集合的添加和删除操作
2019/12/16 Python
PySide2出现“ImportError: DLL load failed: 找不到指定的模块”的问题及解决方法
2020/06/10 Python
Python下使用Trackbar实现绘图板
2020/10/27 Python
python 实现图片修复(可用于去水印)
2020/11/19 Python
python 实时调取摄像头的示例代码
2020/11/25 Python
python中四舍五入的正确打开方式
2021/01/18 Python
俄语专业毕业生推荐信
2013/10/28 职场文书
销售经理岗位职责
2014/03/16 职场文书
元宵节主持词
2014/03/25 职场文书
关于学习的决心书
2015/02/05 职场文书
2015年医务人员医德医风自我评价
2015/03/03 职场文书
2015年挂职干部工作总结
2015/05/14 职场文书
小学班主任培训心得体会
2016/01/07 职场文书
年中了,该如何写好个人述职报告?
2019/07/02 职场文书
Python中递归以及递归遍历目录详解
2021/10/24 Python
用Python仅20行代码编写一个简单的端口扫描器
2022/04/08 Python