解决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类方法__init__和__del__构造、析构过程分析
Mar 06 Python
Python Socket传输文件示例
Jan 16 Python
Python搜索引擎实现原理和方法
Nov 27 Python
浅谈Python Opencv中gamma变换的使用详解
Apr 02 Python
Python从ZabbixAPI获取信息及实现Zabbix-API 监控的方法
Sep 17 Python
Python自动化测试笔试面试题精选
Mar 12 Python
使用Python爬取弹出窗口信息的实例
Mar 14 Python
Python插件机制实现详解
May 04 Python
python录音并调用百度语音识别接口的示例
Dec 01 Python
django中cookiecutter的使用教程
Dec 03 Python
selenium判断元素是否存在的两种方法小结
Dec 07 Python
pytorch中的torch.nn.Conv2d()函数图文详解
Feb 28 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 $_FILES中error返回值详解
2014/01/30 PHP
laravel ORM 只开启created_at的几种方法总结
2018/01/29 PHP
JXTree对象,读取外部xml文件数据,生成树的函数
2007/04/02 Javascript
jQuery开发者都需要知道的5个小技巧
2010/01/08 Javascript
JS判断文本框内容改变事件的简单实例
2014/03/07 Javascript
js闭包的用途详解
2014/11/09 Javascript
JS实现新浪博客左侧的Blog管理菜单效果代码
2015/10/22 Javascript
JavaScript动态设置div的样式的方法
2015/12/26 Javascript
jQuery表格插件datatables用法汇总
2016/03/29 Javascript
JQuery解析XML数据的几个简单实例
2016/05/18 Javascript
浅析JavaScript回调函数应用
2016/05/22 Javascript
js中class的点击事件没有效果的解决方法
2016/10/13 Javascript
Canvas实现动态的雪花效果
2017/02/13 Javascript
jquery仿ps颜色拾取功能
2017/03/08 Javascript
JavaScript布尔运算符原理使用解析
2020/05/06 Javascript
在Django的视图中使用form对象的方法
2015/07/18 Python
在centos7中分布式部署pyspider
2017/05/03 Python
基于Python中capitalize()与title()的区别详解
2017/12/09 Python
Python with语句上下文管理器两种实现方法分析
2018/02/09 Python
DataFrame 将某列数据转为数组的方法
2018/04/13 Python
python读取xlsx的方法
2018/12/25 Python
python实现坦克大战游戏 附详细注释
2020/03/27 Python
VPS CENTOS 上配置python,mysql,nginx,uwsgi,django的方法详解
2019/07/01 Python
Python 实现遥感影像波段组合的示例代码
2019/08/04 Python
Pytorch中index_select() 函数的实现理解
2019/11/19 Python
详解如何解决H5开发使用wx.hideMenuItems无效果不生效
2021/01/20 HTML / CSS
澳大利亚最超值的自行车之家:Reid Cycles
2019/03/24 全球购物
牵手50香港:专为黄金岁月的单身人士而设的交友网站
2020/08/14 全球购物
美国电子产品购物网站:BuyDig.com
2020/06/17 全球购物
护理专业应届毕业生推荐信
2013/11/15 职场文书
上班看电影检讨书
2014/02/12 职场文书
《美丽的彩虹》教学反思
2014/02/25 职场文书
2014年数学教研组工作总结
2014/12/06 职场文书
2014幼儿园教育教学工作总结
2014/12/17 职场文书
党小组考察意见
2015/06/02 职场文书
通过T-SQL语句创建游标与实现数据库加解密功能
2022/03/16 SQL Server