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给文本创立向量空间模型的教程
Apr 23 Python
搭建Python的Django框架环境并建立和运行第一个App的教程
Jul 02 Python
Python标准库sched模块使用指南
Jul 06 Python
获取Django项目的全部url方法详解
Oct 26 Python
Django中的CBV和FBV示例介绍
Feb 25 Python
浅谈python标准库--functools.partial
Mar 13 Python
Python 仅获取响应头, 不获取实体的实例
Aug 21 Python
python读写Excel表格的实例代码(简单实用)
Dec 19 Python
python可视化text()函数使用详解
Feb 11 Python
pycharm 中mark directory as exclude的用法详解
Feb 14 Python
使用Python Tkinter实现剪刀石头布小游戏功能
Oct 23 Python
python 爬虫如何实现百度翻译
Nov 16 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
centos+php+coreseek+sphinx+mysql之一coreseek安装篇
2016/10/25 PHP
php数据库操作model类(使用__call方法)
2016/11/16 PHP
toString()一个会自动调用的方法
2010/02/08 Javascript
Java File类的常用方法总结
2015/03/18 Javascript
BootStrap下拉框在firefox浏览器界面不友好的解决方案
2016/08/18 Javascript
AngularJS 整理一些优化的小技巧
2016/08/18 Javascript
Angular工具方法学习
2016/12/26 Javascript
JavaScript中transform实现数字翻页效果
2017/03/08 Javascript
详解vue-loader在项目中是如何配置的
2018/06/04 Javascript
详解vue-cli 2.0配置文件(小结)
2019/01/14 Javascript
vue2之简易的pc端短信验证码的问题及处理方法
2019/06/03 Javascript
js实现坦克大战游戏
2020/02/24 Javascript
Vue实现购物车实例代码两则
2020/05/30 Javascript
JavaScript实现滚动加载更多
2020/12/27 Javascript
Python 流程控制实例代码
2009/09/25 Python
用Python脚本生成Android SALT扰码的方法
2013/09/18 Python
python安装mysql-python简明笔记(ubuntu环境)
2016/06/25 Python
Python编码类型转换方法详解
2016/07/01 Python
对python 命令的-u参数详解
2018/12/03 Python
django实现用户注册实例讲解
2019/10/30 Python
python导入不同目录下的自定义模块过程解析
2019/11/18 Python
学会迭代器设计模式,帮你大幅提升python性能
2021/01/03 Python
瑞典Happy Socks美国官网:购买色彩斑斓的快乐袜子
2016/10/19 全球购物
Vero Moda西班牙官方购物网站:丹麦BESTSELLER旗下知名女装品牌
2018/04/27 全球购物
Airbnb爱彼迎官网:成为爱彼迎房东,赚取收入
2019/03/14 全球购物
FC-Moto美国:欧洲最大的摩托车服装和头盔商店之一
2019/08/24 全球购物
初中生学习的自我评价
2013/11/14 职场文书
学前班教师的自我鉴定
2013/12/05 职场文书
离婚财产分配协议书
2014/10/21 职场文书
2015社区精神文明建设工作总结
2015/04/21 职场文书
办公用品质量保证书
2015/05/11 职场文书
2016大学迎新晚会开场白
2015/11/24 职场文书
技术转让协议书
2016/03/19 职场文书
2019银行竞聘书
2019/06/21 职场文书
Python实现简单得递归下降Parser
2022/05/02 Python
apache ftpserver搭建ftp服务器
2022/05/20 Servers