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 24 Python
Python中不同进制互相转换(二进制、八进制、十进制和十六进制)
Apr 05 Python
python之文件读取一行一行的方法
Jul 12 Python
python通过zabbix api获取主机
Sep 17 Python
使用k8s部署Django项目的方法步骤
Jan 14 Python
Python类的继承用法示例
Jan 31 Python
Python当中的array数组对象实例详解
Jun 12 Python
pymysql 插入数据 转义处理方式
Mar 02 Python
python爬虫开发之selenium模块详细使用方法与实例全解
Mar 09 Python
python装饰器代码深入讲解
Mar 01 Python
Python基础之元组与文件知识总结
May 19 Python
Python的这些库,你知道多少?
Jun 09 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 zend解密软件绿色版测试可用
2008/04/14 PHP
基于PHP读取TXT文件向数据库导入海量数据的方法
2013/04/23 PHP
解析PHP高效率写法(详解原因)
2013/06/20 PHP
php采用file_get_contents代替使用curl实例
2014/11/07 PHP
php中socket通信机制实例详解
2015/01/03 PHP
Iframe 自动适应页面的高度示例代码
2014/02/26 Javascript
关闭浏览器窗口弹出提示框并且可以控制其失效
2014/04/15 Javascript
jQuery中:password选择器用法实例
2015/01/03 Javascript
jQuery的事件委托实例分析
2015/07/15 Javascript
jQuery EasyUI Dialog拖不下来如何解决
2015/09/28 Javascript
AngularJS基础 ng-mouseleave 指令详解
2016/08/02 Javascript
vue-ajax小封装实例
2017/09/18 Javascript
基于nodejs实现微信支付功能
2017/12/20 NodeJs
Angular实现可删除并计算总金额的购物车功能示例
2017/12/26 Javascript
jQuery实现文件编码成base64并通过AJAX上传的方法
2018/04/12 jQuery
微信小程序中使用ECharts 异步加载数据实现图表功能
2018/07/13 Javascript
Vue源码解读之Component组件注册的实现
2018/08/24 Javascript
详解vue文件中使用echarts.js的两种方式
2018/10/18 Javascript
JavaScript变量提升和严格模式实例分析
2019/01/27 Javascript
微信小程序 scroll-view 实现锚点跳转功能
2019/12/12 Javascript
[18:32]DOTA2 HEROS教学视频教你分分钟做大人-谜团
2014/06/12 DOTA
Python OpenCV实现图片上输出中文
2018/01/22 Python
Python迭代器与生成器用法实例分析
2018/07/09 Python
Python爬虫实现使用beautifulSoup4爬取名言网功能案例
2019/09/15 Python
TensorFlow中如何确定张量的形状实例
2020/06/23 Python
HTML块级标签汇总(小篇)
2016/07/13 HTML / CSS
移动端html5模拟长按事件的实现方法
2018/09/30 HTML / CSS
Tretorn美国官网:瑞典外套和鞋类品牌,抵御风雨
2018/07/19 全球购物
酒店出纳岗位职责
2013/12/29 职场文书
致接力运动员广播稿
2014/02/17 职场文书
英语专业职业生涯规划范文
2014/03/05 职场文书
出国英文推荐信
2014/05/10 职场文书
员工安全生产承诺书
2014/05/22 职场文书
群众路线教育实践活动整改落实情况汇报
2014/10/28 职场文书
幼儿园三八妇女节活动总结
2015/02/06 职场文书
SQL中的三种去重方法小结
2021/11/01 SQL Server