解决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中使用lambda高效操作列表的教程
Apr 24 Python
讲解Python的Scrapy爬虫框架使用代理进行采集的方法
Feb 18 Python
基于python的字节编译详解
Sep 20 Python
Python使用Matplotlib实现雨点图动画效果的方法
Dec 23 Python
Python基于列表list实现的CRUD操作功能示例
Jan 05 Python
Pycharm设置界面全黑的方法
May 23 Python
Python 实现Windows开机运行某软件的方法
Oct 14 Python
Python numpy中矩阵的基本用法汇总
Feb 12 Python
Python中面向对象你应该知道的一下知识
Jul 10 Python
Python 复平面绘图实例
Nov 21 Python
Python3自动生成MySQL数据字典的markdown文本的实现
May 07 Python
Python DES加密实现原理及实例解析
Jul 17 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
B2K与车机的中波PK
2021/03/02 无线电
SONY SRF-40W电路分析
2021/03/02 无线电
php数组函数序列之array_unique() - 去除数组中重复的元素值
2011/10/29 PHP
PHP中file_exists函数不支持中文名的解决方法
2014/07/26 PHP
Zend Framework教程之Zend_Db_Table用法详解
2016/03/21 PHP
PHP抓取及分析网页的方法详解
2016/04/26 PHP
详解配置 Apache 服务器支持 PHP 文件的解析
2017/02/15 PHP
通过php动态传数据到highcharts
2017/04/05 PHP
PHP数据库操作三:redis用法分析
2017/08/16 PHP
Avengerls vs KG BO3 第三场2.18
2021/03/10 DOTA
jquery实现每个数字上都带进度条的幻灯片
2013/02/20 Javascript
javascript定义变量时有var和没有var的区别探讨
2014/07/21 Javascript
Javascript核心读书有感之语言核心
2015/02/01 Javascript
drag-and-drop实现图片浏览器预览
2015/08/06 Javascript
ionic 自定义弹框效果
2017/06/27 Javascript
angular中不同的组件间传值与通信的方法
2017/11/04 Javascript
原生JS实现的双色球功能示例
2018/02/02 Javascript
js实现购物车功能
2018/06/12 Javascript
详解如何在vue项目中使用eslint+prettier格式化代码
2018/11/10 Javascript
CKeditor4 字体颜色功能配置方法教程
2019/06/26 Javascript
详解BootStrap表单验证中重置BootStrap-select验证提示不清除的坑
2019/09/17 Javascript
vue使用map代替Aarry数组循环遍历的方法
2020/04/30 Javascript
vue实现简易的双向数据绑定
2020/12/29 Vue.js
[37:35]DOTA2上海特级锦标赛A组资格赛#1 Secret VS MVP.Phx第二局
2016/02/25 DOTA
[56:24]DOTA2上海特级锦标赛主赛事日 - 3 胜者组第二轮#1Liquid VS MVP.Phx第二局
2016/03/04 DOTA
详解Python中expandtabs()方法的使用
2015/05/18 Python
python获取网页中所有图片并筛选指定分辨率的方法
2018/03/31 Python
win10安装tensorflow-gpu1.8.0详细完整步骤
2020/01/20 Python
CSS3关于z-index不生效问题的解决
2020/02/19 HTML / CSS
关于梦想的演讲稿
2014/05/05 职场文书
舞蹈教育学专业自荐信
2014/06/15 职场文书
2014年大学生职业规划书:未来不是梦,只要勇敢冲!
2014/09/22 职场文书
实施意见格式范本
2015/06/05 职场文书
跑吧孩子观后感
2015/06/10 职场文书
幼儿园小朋友毕业感言
2015/07/30 职场文书
如何用JavaScript实现一个数组惰性求值库
2021/05/05 Javascript