解决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 09 Python
Python的Django框架下管理站点的基本方法
Jul 17 Python
Python字符串格式化输出方法分析
Apr 13 Python
浅谈python中的__init__、__new__和__call__方法
Jul 18 Python
Python探索之pLSA实现代码
Oct 25 Python
mac下给python3安装requests库和scrapy库的实例
Jun 13 Python
python中sys.argv函数精简概括
Jul 08 Python
python变量赋值方法(可变与不可变)
Jan 12 Python
在Pycharm terminal中字体大小设置的方法
Jan 16 Python
详解Python在使用JSON时需要注意的编码问题
Dec 06 Python
浅谈tensorflow使用张量时的一些注意点tf.concat,tf.reshape,tf.stack
Jun 23 Python
PyTorch中的拷贝与就地操作详解
Dec 09 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+Ajax检测用户名或邮件注册时是否已经存在实例教程
2014/08/23 PHP
php中mkdir()函数的权限问题分析
2016/09/24 PHP
thinkphp5.1 文件引入路径问题及注意事项
2018/06/13 PHP
tp5.1 框架路由操作-URL生成实例分析
2020/05/26 PHP
兼容多浏览器的iframe自适应高度(ie8 、谷歌浏览器4.0和 firefox3.5.3)
2009/11/04 Javascript
点击隐藏页面左栏或右栏实现js代码
2013/04/01 Javascript
浅析JavaScript中的隐式类型转换
2013/12/05 Javascript
jQuery 滑动方法slideDown向下滑动元素
2014/01/16 Javascript
jQuery设置与获取HTML,文本和值的简单实例
2014/02/26 Javascript
javascript实现手机震动API代码
2015/08/05 Javascript
jQuery通过写入cookie实现更换网页背景的方法
2016/04/15 Javascript
拖动时防止选中
2017/02/03 Javascript
vue 页面加载进度条组件实例
2018/02/05 Javascript
Angular实现的进度条功能示例
2018/02/18 Javascript
关于Angularjs中跨域设置白名单问题
2018/04/17 Javascript
一个Vue页面的内存泄露分析详解
2018/06/25 Javascript
vue解决使用webpack打包后keep-alive不生效的方法
2018/09/01 Javascript
自己动手封装一个React Native多级联动
2018/09/19 Javascript
Jquery的Ajax技术使用方法
2019/01/21 jQuery
python基本语法练习实例
2017/09/19 Python
python创建文件备份的脚本
2018/09/11 Python
Python完成毫秒级抢淘宝大单功能
2019/06/06 Python
python跳出双层for循环的解决方法
2019/06/24 Python
python 机器学习之支持向量机非线性回归SVR模型
2019/06/26 Python
python将字符串list写入excel和txt的实例
2019/07/20 Python
修改Pandas的行或列的名字(重命名)
2019/12/18 Python
使用 Python 遍历目录树的方法
2020/02/29 Python
python GUI库图形界面开发之PyQt5滚动条控件QScrollBar详细使用方法与实例
2020/03/06 Python
Python利用for循环打印星号三角形的案例
2020/04/12 Python
Python文件夹批处理操作代码实例
2020/07/21 Python
在Python中实现字典反转案例
2020/12/05 Python
Shopbop中文官网:美国亚马逊旗下时尚购物网站
2020/12/15 全球购物
英语专业学生个人求职信
2014/01/28 职场文书
美术教学感言
2014/02/22 职场文书
土木工程求职信
2014/05/29 职场文书
win10清理dns缓存
2022/04/19 数码科技