解决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简单文本处理的方法
Jul 10 Python
Python多线程结合队列下载百度音乐的方法
Jul 27 Python
一步步解析Python斗牛游戏的概率
Feb 12 Python
Python cookbook(数据结构与算法)实现查找两个字典相同点的方法
Feb 18 Python
python实现Windows电脑定时关机
Jun 20 Python
对Pyhon实现静态变量全局变量的方法详解
Jan 11 Python
pandas中read_csv的缺失值处理方式
Dec 19 Python
Django中modelform组件实例用法总结
Feb 10 Python
python统计文章中单词出现次数实例
Feb 27 Python
matplotlib 画双轴子图无法显示x轴的解决方法
Jul 27 Python
Python 如何展开嵌套的序列
Aug 01 Python
详解OpenCV曝光融合
Apr 29 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
自己动手,丰衣足食 - 短波框形天线制作
2021/03/01 无线电
浅析PHP中的字符串编码转换(自动识别原编码)
2013/07/02 PHP
一个显示效果非常不错的PHP错误、异常处理类
2014/03/21 PHP
php获取根域名方法汇总
2014/10/28 PHP
PHP addslashes()函数讲解
2019/02/03 PHP
php swoole多进程/多线程用法示例【基于php7nts版】
2019/08/12 PHP
JS 进度条效果实现代码整理
2011/05/21 Javascript
javascript 数字格式化输出的实现代码
2013/12/10 Javascript
JavaScript获取数组最小值和最大值的方法
2015/06/09 Javascript
jQuery仿360导航页图标拖动排序效果代码分享
2015/08/24 Javascript
JS动态日期时间的获取方法
2015/09/28 Javascript
js实现不重复导入的方法
2016/03/02 Javascript
浅谈Javascript数组(推荐)
2016/05/17 Javascript
JS声明式函数与赋值式函数实例分析
2016/12/13 Javascript
详解Javascript获取缓存和清除缓存API
2017/05/25 Javascript
node前端模板引擎Jade之标签的基本写法
2018/05/11 Javascript
angularjs下ng-repeat点击元素改变样式的实现方法
2018/09/12 Javascript
详解关于Angular4 ng-zorro使用过程中遇到的问题
2018/12/05 Javascript
详解小程序循环require之坑
2019/03/08 Javascript
js比较两个单独的数组或对象是否相等的实例代码
2019/04/28 Javascript
JavaScript中的this原理及6种常见使用场景详解
2020/02/14 Javascript
Javascript摸拟自由落体与上抛运动原理与实现方法详解
2020/04/08 Javascript
使用python绘制人人网好友关系图示例
2014/04/01 Python
python模拟鼠标拖动操作的方法
2015/03/11 Python
使用Python设置tmpfs来加速项目的教程
2015/04/17 Python
Numpy数组的保存与读取方法
2018/04/04 Python
python中subprocess批量执行linux命令
2018/04/27 Python
Python实现识别图片内容的方法分析
2018/07/11 Python
python tkinter图形界面代码统计工具(更新)
2019/09/18 Python
Python3安装模块报错Microsoft Visual C++ 14.0 is required的解决方法
2020/07/28 Python
程序员求职信
2014/04/16 职场文书
自强之星事迹材料
2014/05/12 职场文书
艺术设计专业毕业生推荐信
2014/07/08 职场文书
党员反对四风思想汇报范文
2014/10/25 职场文书
2016年度先进班组事迹材料
2016/03/01 职场文书
mysql连接查询中and与where的区别浅析
2021/07/01 MySQL