PyQt5多线程刷新界面防假死示例


Posted in Python onDecember 13, 2019

在做GUI界面时我们希望后台任务能够与UI分开,在PyQt中,主线程用来重绘界面。而子线程里边的实时处理结果需要反馈到界面,子线程里边不能执行界面更新操作。

wxpython多线程刷新界面转到

下面给出类Python3+PyQt5多线程防假死动态刷新界面的模板

from PyQt5 import QtWidgets, QtCore
import sys
from PyQt5.QtCore import *
import time
 
 
# 继承QThread
class Runthread(QtCore.QThread):
  # 通过类成员对象定义信号对象
  _signal = pyqtSignal(str)
 
  def __init__(self):
    super(Runthread, self).__init__()
 
  def __del__(self):
    self.wait()
 
  def run(self):
    for i in range(100):
      time.sleep(0.2)
      self._signal.emit(str(i)) # 注意这里与_signal = pyqtSignal(str)中的类型相同
 
 
class Example(QtWidgets.QWidget):
 
  def __init__(self):
    super().__init__()
    # 按钮初始化
    self.button = QtWidgets.QPushButton('开始', self)
    self.button.setToolTip('这是一个 <b>QPushButton</b> widget')
    self.button.resize(self.button.sizeHint())
    self.button.move(120, 80)
    self.button.clicked.connect(self.start_login) # 绑定多线程触发事件
 
    # 进度条设置
    self.pbar = QtWidgets.QProgressBar(self)
    self.pbar.setGeometry(50, 50, 210, 25)
    self.pbar.setValue(0)
 
    # 窗口初始化
    self.setGeometry(300, 300, 300, 200)
    self.setWindowTitle('OmegaXYZ.com')
    self.show()
 
    self.thread = None # 初始化线程
 
  def start_login(self):
    # 创建线程
    self.thread = Runthread()
    # 连接信号
    self.thread._signal.connect(self.call_backlog) # 进程连接回传到GUI的事件
    # 开始线程
    self.thread.start()
 
  def call_backlog(self, msg):
    self.pbar.setValue(int(msg)) # 将线程的参数传入进度条
 
 
if __name__ == "__main__":
  app = QtWidgets.QApplication(sys.argv)
  myshow = Example()
  myshow.show()
  sys.exit(app.exec_())

效果:

PyQt5多线程刷新界面防假死示例

以上这篇PyQt5多线程刷新界面防假死示例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python中文编码问题小结
Sep 28 Python
python插入数据到列表的方法
Apr 30 Python
详谈Python高阶函数与函数装饰器(推荐)
Sep 30 Python
python 读写文件,按行修改文件的方法
Jul 12 Python
使用Python 正则匹配两个特定字符之间的字符方法
Dec 24 Python
Python批量删除只保留最近几天table的代码实例
Apr 01 Python
利用python计算时间差(返回天数)
Sep 07 Python
django框架F&amp;Q 聚合与分组操作示例
Dec 12 Python
Python字典中的值为列表或字典的构造实例
Dec 16 Python
pytorch: Parameter 的数据结构实例
Dec 31 Python
python怎么判断模块安装完成
Jun 19 Python
python实现三种随机请求头方式
Jan 05 Python
wxpython多线程防假死与线程间传递消息实例详解
Dec 13 #Python
python-web根据元素属性进行定位的方法
Dec 13 #Python
python Jupyter运行时间实例过程解析
Dec 13 #Python
Python time库基本使用方法分析
Dec 13 #Python
使用python 将图片复制到系统剪贴中
Dec 13 #Python
Python中使用gflags实例及原理解析
Dec 13 #Python
使用Python进行防病毒免杀解析
Dec 13 #Python
You might like
解析PHP正则提取或替换img标记属性
2013/06/26 PHP
php中session_id()函数详细介绍,会话id生成过程及session id长度
2015/09/23 PHP
Apache PHP MySql安装配置图文教程
2016/08/27 PHP
php使用redis的有序集合zset实现延迟队列应用示例
2020/02/20 PHP
jQuery EasyUI API 中文文档 - DataGrid数据表格
2011/11/17 Javascript
jquery中prop()方法和attr()方法的区别浅析
2013/09/06 Javascript
js获取网页可见区域、正文以及屏幕分辨率的高度
2014/05/15 Javascript
js实现checkbox全选、不选与反选的方法
2015/02/09 Javascript
JavaScript实现带缓冲效果的随屏滚动漂浮广告代码
2015/11/06 Javascript
JavaScript 消息框效果【实现代码】
2016/04/27 Javascript
JavaScript 上传文件(psd,压缩包等),图片,视频的实现方法
2017/06/19 Javascript
解决cordova+vue 项目打包成APK应用遇到的问题
2019/05/10 Javascript
vuejs移动端实现div拖拽移动
2019/07/25 Javascript
python中的列表推导浅析
2014/04/26 Python
Python 40行代码实现人脸识别功能
2017/04/02 Python
python2 与 pyhton3的输入语句写法小结
2018/09/10 Python
详解Python:面向对象编程
2019/04/10 Python
基于python实现的百度音乐下载器python pyqt改进版(附代码)
2019/08/05 Python
Python脚本去除文件的只读性操作
2020/03/05 Python
keras打印loss对权重的导数方式
2020/06/10 Python
使用py-spy解决scrapy卡死的问题方法
2020/09/29 Python
HTML5 Plus 实现手机APP拍照或相册选择图片上传功能
2016/07/13 HTML / CSS
数学系毕业生的自我评价
2014/01/10 职场文书
初一科学教学反思
2014/01/27 职场文书
职业生涯规划书范文
2014/03/10 职场文书
公司自我介绍演讲稿
2014/08/21 职场文书
项目委托协议书(最新)
2014/09/13 职场文书
2014年向国旗敬礼活动总结
2014/09/27 职场文书
领导四风问题整改措施思想汇报
2014/10/13 职场文书
街道党风廉政建设调研报告
2015/01/01 职场文书
扬州个园导游词
2015/02/06 职场文书
公司门卫岗位职责
2015/04/13 职场文书
给朋友的道歉短信
2015/05/12 职场文书
五星级酒店宣传口号
2015/12/25 职场文书
导游词之南京莫愁湖公园
2019/11/13 职场文书
Redis数据结构之链表与字典的使用
2021/05/11 Redis