九、Pyqt5进度条——QProgressBar

左心房为你撑大大i 提交于 2021-02-13 03:53:04

QProgressBar部件为进度条,进度条方向为水平或者竖直。在处理一个耗时较长的任务时,可能就会用到进度条部件。因为使用进度条可以形象告诉用户当前的任务正在进行中。

进度条常用函数如下:

函数

内容

setInvertedAppearance

True/False

设置进度条的走向。

Ture:从左至右或从上到下

False:从右至左或从下到上

默认为True

setOrientation
Qt.Horizontal/
Qt.Vertical

 设置进度条为水平、竖直。

默认为水平

 
setMinimum
 0~99 设置最小值 ,默认0
 
setMinimum
0~99  设置最大值 ,默认99
setFormat

%p

%v

%m

设置进度条旁的文本显示:

以百分比表示;

以当前值表示;

以总步长表示。

默认为百分比(%p)。

示例如下:

 1 import sys,time
 2 from PyQt5.QtWidgets import QApplication, QWidget, QProgressBar, QPushButton,QVBoxLayout
 3 from PyQt5.QtCore import Qt
 4 
 5 
 6 class Mywin(QWidget):
 7     def __init__(self):
 8         super().__init__()
 9         self.setWindowTitle('进度条')
10         self.step = 0 #初始值设置为0
11         self.initUI()
12 
13     def initUI(self):
14         self.pbar = QProgressBar()
15 
16         self.pbar.setInvertedAppearance(False)   #进度条走向
17         self.pbar.setOrientation(Qt.Horizontal)   #进度条的方向
18         self.btn = QPushButton('开始', self)
19 
20         self.v_layout = QVBoxLayout()
21         self.v_layout.addWidget(self.pbar)
22         self.v_layout.addWidget(self.btn)
23         self.setLayout(self.v_layout)
24 
25         self.btn.clicked.connect(self.action)
26 
27     def action(self):
28         self.pbar.setMinimum(0)
29         self.pbar.setMaximum(0)
30         while self.step < 1000:
31             self.pbar.setValue(self.step)
32             self.step += 1
33             time.sleep(0.001)
34         else:
35             self.step = 0
36             print('done')
37             self.pbar.setValue(self.step)
38 
39 
40 if __name__ == '__main__':
41      app = QApplication(sys.argv)
42      mywin = Mywin()
43      mywin.show()
44      sys.exit(app.exec_())
跑马灯效果

显示效果如下:

 

 显示效果为跑马灯效果,且不显示进度文本。这是由于代码中加入了

self.pbar.setMinimum(0)
 self.pbar.setMaximum(0)

  如果将上面两行代码去掉,就会显示正常效果,如下所示:

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!