解决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操作数据库之sqlite3打开数据库、删除、修改示例
Mar 13 Python
Python操作MySQL数据库9个实用实例
Dec 11 Python
在Linux命令行终端中使用python的简单方法(推荐)
Jan 23 Python
python中WSGI是什么,Python应用WSGI详解
Nov 24 Python
python+VTK环境搭建及第一个简单程序代码
Dec 13 Python
Python3中的列表生成式、生成器与迭代器实例详解
Jun 11 Python
python+opencv实现高斯平滑滤波
Jul 21 Python
解决Python计算矩阵乘向量,矩阵乘实数的一些小错误
Aug 26 Python
Python类反射机制使用实例解析
Dec 30 Python
Python图像阈值化处理及算法比对实例解析
Jun 19 Python
Jmeter HTTPS接口测试证书导入过程图解
Jul 22 Python
七个非常实用的Python工具包总结
Jun 15 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过滤html标记属性类用法实例
2014/09/23 PHP
PHP查找与搜索数组元素方法总结
2015/06/12 PHP
Javascript函数的参数
2015/07/16 Javascript
jQuery实现的AJAX简单弹出层效果代码
2015/11/26 Javascript
以JavaScript来实现WordPress中的二级导航菜单的方法
2015/12/14 Javascript
结合代码图文讲解JavaScript中的作用域与作用域链
2016/07/05 Javascript
jQuery实现遮罩层登录对话框
2016/12/29 Javascript
Angular 2父子组件数据传递之@Input和@Output详解 (上)
2017/07/05 Javascript
在vue-cli搭建的项目中增加后台mock接口的方法
2018/04/26 Javascript
vue-cli 打包后提交到线上出现 "Uncaught SyntaxError:Unexpected token" 报错
2018/11/06 Javascript
vue之debounce属性被移除及处理详解
2019/11/13 Javascript
微信小程序自定义navigationBar顶部导航栏适配所有机型(附完整案例)
2020/04/26 Javascript
Vue中watch、computed、updated三者的区别及用法
2020/07/27 Javascript
vue使用exif获取图片经纬度的示例代码
2020/12/11 Vue.js
解决谷歌搜索技术文章时打不开网页问题的python脚本
2013/02/10 Python
python读写文件操作示例程序
2013/12/02 Python
python中正则表达式的使用详解
2014/10/17 Python
详细解析Python中的变量的数据类型
2015/05/13 Python
python访问抓取网页常用命令总结
2017/04/11 Python
python-itchat 获取微信群用户信息的实例
2019/02/21 Python
详解Python二维数组与三维数组切片的方法
2019/07/18 Python
python实现图像拼接
2020/03/05 Python
Python collections.defaultdict模块用法详解
2020/06/18 Python
python 删除excel表格重复行,数据预处理操作
2020/07/06 Python
python输入中文的实例方法
2020/09/14 Python
python 实现非极大值抑制算法(Non-maximum suppression, NMS)
2020/10/15 Python
Python3中FuzzyWuzzy库实例用法
2020/11/18 Python
Microsoft新加坡官方网站:购买微软最新软件和技术产品
2016/10/28 全球购物
MediaMarkt比利时:欧洲最大电器连锁店
2020/12/21 全球购物
高中化学教学反思
2014/01/13 职场文书
厨师长岗位职责
2014/03/02 职场文书
有关水浒传的读书笔记
2015/06/25 职场文书
班级联欢会主持词
2015/07/03 职场文书
反邪教教育心得体会
2016/01/15 职场文书
关于JavaScript回调函数的深入理解
2021/06/27 Javascript
vue3引入highlight.js进行代码高亮的方法实例
2022/04/08 Vue.js