解决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里disconnect UDP套接字的方法
Apr 23 Python
python基础教程之分支、循环简单用法
Jun 16 Python
python中Matplotlib实现绘制3D图的示例代码
Sep 04 Python
Python3实现的字典、列表和json对象互转功能示例
May 22 Python
详解Django3中直接添加Websockets方式
Feb 12 Python
使用pandas库对csv文件进行筛选保存
May 25 Python
解决python 在for循环并且pop数组的时候会跳过某些元素的问题
Dec 11 Python
Python 数据分析之逐块读取文本的实现
Dec 14 Python
Python 将代码转换为可执行文件脱离python环境运行(步骤详解)
Jan 25 Python
Python对excel的基本操作方法
Feb 18 Python
超详细Python解释器新手安装教程
May 10 Python
python读取mat文件生成h5文件的实现
Jul 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文件读写操作之文件写入代码
2011/01/13 PHP
php语言流程控制中的主动与被动
2012/11/05 PHP
基于php socket(fsockopen)的应用实例分析
2013/06/02 PHP
浅析php创建者模式
2014/11/25 PHP
php动态生成版权所有信息的方法
2015/03/24 PHP
PHP面向对象详解(三)
2015/12/07 PHP
PHP魔术方法之__call与__callStatic使用方法
2017/07/23 PHP
php实现将数据做成json的格式给前端使用
2018/08/21 PHP
GridView中获取被点击行中的DropDownList和TextBox中的值
2013/07/18 Javascript
jquery基础教程之deferred对象使用方法
2014/01/22 Javascript
ajax读取数据后使用jqchart显示图表的方法
2015/06/10 Javascript
Javascript编写俄罗斯方块思路及实例
2015/07/07 Javascript
页面间固定参数,通过cookie传值的实现方法
2017/05/31 Javascript
基于vue实现分页效果
2017/11/06 Javascript
vue 监听某个div垂直滚动条下拉到底部的方法
2018/09/15 Javascript
JQuery发送ajax请求时中文乱码问题解决
2019/11/14 jQuery
[02:04]2014DOTA2国际邀请赛 BBC小组赛第三天总结
2014/07/12 DOTA
[54:15]DOTA2-DPC中国联赛 正赛 DLG vs Dragon BO3 第二场2月1日
2021/03/11 DOTA
Python 列表(List)操作方法详解
2014/03/11 Python
Python计算程序运行时间的方法
2014/12/13 Python
Python数组定义方法
2016/04/13 Python
python 爬虫出现403禁止访问错误详解
2017/03/11 Python
Python将图片转换为字符画的方法
2020/06/16 Python
python 遍历目录(包括子目录)下所有文件的实例
2018/07/11 Python
Python查找数组中数值和下标相等的元素示例【二分查找】
2019/02/13 Python
如何在Django项目中引入静态文件
2019/07/26 Python
Python爬虫后获取重定向url的两种方法
2021/01/19 Python
在html5的Canvas上绘制椭圆的几种方法总结
2013/01/07 HTML / CSS
贝玲妃美国官方网站:Benefit美国
2016/08/28 全球购物
大学校庆邀请函
2014/01/11 职场文书
总经理岗位职责描述
2014/02/08 职场文书
财务担保书范文
2014/04/02 职场文书
给孩子的新年寄语
2014/04/08 职场文书
党员个人自我剖析材料
2014/10/08 职场文书
承诺书范本
2015/01/21 职场文书
python playwright之元素定位示例详解
2022/07/23 Python