PyQt5之进度条:QProgressBar

在软件中,在处理特别冗长的任务时,如果没有相关的进度信息,这个等待的过程会比较考验用户的耐心,根据相关理论,进度条可以缓解用户在等待过程中的焦虑,所以,当程序的响应速度无法再提升时,可以选择增加进度条指明程序的处理进度。

在PyQt5中,进度条控件为QProgressBar,它以动画的形式显示程序的处理进度。

QProgressBar

QProgressBar控件提供了水平或者垂直的进度条,可以通过设置进度条的最小值、最大值和当前值显示进度,最小值和最大值默认分别为0和99。

常用方法

  • setRange(): 设置进度条的取值范围(最小值和最大值)
  • setMinimum(): 设置进度条的最小值
  • setFont(): 设置文本字体
  • setMaximum(): 设置进度条的最大值
  • setValue(): 设置进度条的值
  • reset(): 让进度条重新回到开始位置
  • setOrientation(): 设置进度条方向(水平: Qt.Horizontal, 垂直: Qt.Vertical)
  • setTextVisible(): 设置进度条的文本是否可见
  • setTextDirection(): 设置文本方向,只对垂直进度条有效
  • setInvertedAppearance(): 设置进度条的方向(True/False: 正反方向)
  • setFormat(): 设置文本字符串的格式(%p, 百分比显示,这是默认情况, %v: 当前进度, %m :总步数)

实例程序如下

import sys
from PyQt5.QtWidgets import QApplication, QWidget, QPushButton, QProgressBar
from PyQt5.QtCore import QBasicTimer
from PyQt5.QtGui import QFontclass MyClass(QWidget):def __init__(self):super().__init__()self.initUI()def initUI(self):self.resize(500, 300)# 载入进度条控件self.pgb = QProgressBar(self)self.pgb.move(50, 50)self.pgb.resize(250, 20)self.pgb.setStyleSheet("QProgressBar { border: 2px solid grey; border-radius: 5px; color: rgb(20,20,20);  background-color: #FFFFFF; text-align: center;}QProgressBar::chunk {background-color: rgb(100,200,200); border-radius: 10px; margin: 0.1px;  width: 1px;}")## 其中 width 是设置进度条每一步的宽度## margin 设置两步之间的间隔#设置字体font = QFont()font.setBold(True)font.setWeight(30)self.pgb.setFont(font)# 设置一个值表示进度条的当前进度self.pv = 0# 申明一个时钟控件self.timer1 = QBasicTimer()# 设置进度条的范围self.pgb.setMinimum(0)self.pgb.setMaximum(100)self.pgb.setValue(self.pv)## 设置进度条文字格式self.pgb.setFormat('Loaded  %p%'.format(self.pgb.value()-self.pgb.minimum()))# 加载pushbutton1self.btn_start = QPushButton("begin", self)self.btn_start.move(50, 100)self.btn_start.clicked.connect(self.myTimerState)# 加载 pushbutton 2self.btn_update = QPushButton("update", self)self.btn_update.move(150, 100)self.btn_update.clicked.connect(self.update_event)def myTimerState(self):if self.timer1.isActive():self.timer1.stop()self.btn_start.setText("begin")else:self.timer1.start(100, self)self.btn_start.setText("stop")def timerEvent(self, e):if self.pv == 100:self.timer1.stop()self.btn_start.setText("Finish")else:self.pv += 1self.pgb.setValue(self.pv)def update_event(self):if self.timer1.isActive():self.timer1.stop()self.btn_start.setText("begin")self.pv = 0self.pgb.setValue(self.pv)if __name__ == "__main__":app = QApplication(sys.argv)mytask = MyClass()mytask.show()app.exec_()

效果如下:

设置进度条颜色为渐变色

## 添加模块函数
from PyQt5.QtGui import QLinearGradientself.pgb.setStyleSheet("QProgressBar { border: 2px solid grey; border-radius: 5px; background-color: #FFFFFF; text-align: center;}QProgressBar::chunk {background:QLinearGradient(x1:0,y1:0,x2:2,y2:0,stop:0 #666699,stop:1  #DB7093); }")

其中可以调整x2:2 的数值,比如改为x2:1会使得渐变色变化速度更快且最终的颜色最深。
效果如下:


End

PyQt5之进度条:QProgressBar相关推荐

  1. 【Pyqt5】进度条QProgressBar的使用/多线程更新/按钮美化/图片编码/开机自启动

    前言 诚如标题所见,我在使用Pyqt5进行开发时,先后遇到了上面几个问题.本篇博客就用来记录遇到问题/解决问题的过程,希望能给遇到相同问题的读者一些参考. 项目背景 我的项目是构建一个可视化的交互界面 ...

  2. python进度条 pyqt_Python高级进阶#015 pyqt5进度条QProgressBar结合使用qbasictimer

    本期GUI界面,我们继续学习新的控件Qprogressbar. 知识回顾 1.滑动控件qslider 控件设置的关键:设置最大值.最小值,绝对范围. 2.核心类库QtCore,枚举类Qt 核心枚举类的 ...

  3. python进度条 pyqt_python如何通过pyqt5实现进度条

    {"moduleinfo":{"card_count":[{"count_phone":1,"count":1}],&q ...

  4. 【pyqt5学习】——进度条progressBar

    # 进度条 self.progressBar.setValue(0) # 设置进度条的最小值 self.progressBar.setMaximum(100) # 设置进度条的最大值 # 设置进度条当 ...

  5. 【Python笔记】pyqt5进度条-多线程图像分块处理防止窗体卡顿

    目录 主要功能 环境配置 实现过程 1.设计ui 主界面 弹出框 窗体文件 2.主体实现 打开文件 计算函数 代码附录 title.ui titleok.ui title.py titleok.py ...

  6. 基于PyQt5实现弹出任务进度条功能示例

    基于Python和PyQt5实现任务进度条功能示例 基于PyQt5的QprogressBar实现弹出进度条功能,在任务完成后进度条消失,在实际PythonGUI开发中起到一个任务执行过渡和任务提示的作 ...

  7. 基于pyqt5 构建弹窗进度条,在大型计算中实时显示进度

    在大型计算时(例如神经网络训练),经常会遇到计算时间过长,无法知道当前的计算进度,无法判断程序是否进入死循环等问题.采用进度条可以在一定程度上了解当前进度,判断后续所需的计算时间,缓解等待过程中的焦虑 ...

  8. PyQt5实战:你是成熟的软件啦,该有启动画面和加载进度条了!

    大家好,这里是Seon塞翁.笔者在最近的工作中做了一个基于PyQt5实现GUI的数据处理工具,领导表示"我想一双击就能直接看到情况啊,不要打开后还要我自己输入这个点击那个的!"好吧 ...

  9. PyQt5 --- 进度条拖动点击视频播放

    最近学习pyqt5,做一个视频播放器,网上找了很多资料都没有关于python方面的视频进度条拖动点击的方法,几乎都是Qt的.对相关资料的查阅,发现开发过程其实差不多,为此做一下相关的总结. 一.UI的 ...

最新文章

  1. 360金融翟政:科技成就金融场景零容错
  2. std::vectorint size_type 是STL的什么用法
  3. openresty读取环境变量
  4. 鸿蒙之后华为把欧拉也捐了,还承诺不做欧拉商用发行版
  5. CTF-RSA共模攻击 和 非共模攻击解密脚本
  6. Creator Upload NFT sequencial diagram
  7. 选择结构_单if语句
  8. AngularJS 计时器
  9. IO流-ReadLine方法的原理 自定义BufferedReader
  10. c语言文件替换字符串,C语言替换字符串
  11. 对于高级搜索部分的要求
  12. 【嵌入式开发】SIP信令交互总结(1)
  13. php支付宝接口开发提现,ThinkPHP3.2集成 “单笔提现到支付宝账号接口”
  14. win10如何切换计算机用户,windows10如何切换电脑微软账户
  15. Angular:解决innerHTML绑定页面内容,sanitizing HTML stripped some content警告处理和富文本背景色样式无法正常显示的问题
  16. 解决file.delete()无法删除部分文件的问题
  17. 写论文之mathpix snipping tool识别图片中的公式并通过MathType粘贴到word
  18. 数据库选课系统mysql_数据库设计(学生选课系统).doc
  19. 华为服务器1u系列,1u服务器
  20. 卡乐微互动_微信大屏幕现场互动_关键是真免费

热门文章

  1. anti-Nim游戏(反Nim游戏)简介
  2. Wireshark lua 插件简介
  3. host ntrip 千寻rtk_「图文教程」千寻RTK连接千寻cors账号的操作步骤
  4. zinnia项目功能分析
  5. 【数学】维维亚尼定理
  6. erp5开源制造业erp和dream生产排程软件集成指南
  7. 【转】全屋WiFi覆盖无死角,Mesh组网是最佳选择!领势MR9000X组网实测
  8. Intel万兆网卡,intel万兆双口网卡X540T2 性能解剖
  9. 曲面和曲线积分的概念与计算【高等数学(下)十一章】
  10. vue自定义日历小组件