PyQt5Day28--展示控件QProgressBar(进度条)

一、QProgressBar简介

  提供一个水平或垂直进度条;

  进度条用于向用户提供操作进度的提示,并向他们保证相应应用程序仍在运行。

二、QProgressBar的功能作用

1、设置范围和当前值

(1)框架

(2)操作及展示

 1 # *******************QProgressBar**********************开始
 2 from PyQt5.Qt import *
 3 
 4 class Window(QWidget):
 5     def __init__(self):
 6         super().__init__()
 7         self.setWindowTitle("QProgressBar")
 8         self.resize(500, 500)
 9         self.setup_ui()
10 
11     def setup_ui(self):
12         pb = QProgressBar(self)
13 
14         # 设置范围和当前值
15         # print(pb.minimum()) # 0
16         # print(pb.maximum()) # 100
17         # pb.setMinimum(50) # 最小50
18         # pb.setMaximum(100) # 最大值100
19         pb.setRange(0,200) # 设置范围
20         pb.setValue(80) # 设置当前值——显示进度
21 
22         # pb.setRange(0, 0)  # 设置为繁忙状态
23 
24         # 重置设置
25         btn = QPushButton(self)
26         btn.setText("测试按钮")
27         btn.move(100,100)
28         def test():
29             pb.reset()
30             print(pb.minimum())
31             print(pb.maximum())
32             print(pb.value()) 
33         btn.clicked.connect(test)
34 
35 if __name__ == '__main__':
36     import sys
37 
38     app=QApplication(sys.argv)
39 
40     window=Window()
41     window.show()
42     sys.exit(app.exec_())
43 # *******************QProgressBar**********************结束

2、格式设置

(1)框架

(2)操作及展示

1 # 格式设置
2 # pb.setFormat("当前人数/总人数%p%") # 百分比
3 pb.setFormat("当前人数%v/总人数%m")  # 当前值与总值
4 
5 btn.clicked.connect(lambda: pb.resetFormat())  # 重置格式
6 pb.setAlignment(Qt.AlignHCenter)  # 设置标识在进度条的水平居中位置

3、文本操作+方向

(1)框架

(2)操作及展示

 1 # 文本操作+方向
 2 # pb.setTextVisible(False) # 隐藏文本标签
 3 print(pb.text())  # 获取文本标签的内容
 4 
 5 
 6 def test1():
 7     pb.setOrientation(Qt.Vertical)
 8     pb.resize(40, 400)
 9     print(pb.isVisible())
10     pb.setTextDirection(QProgressBar.TopToBottom)  # 文本方向改变(受系统的影响不一定成功)
11 
12 
13 btn.clicked.connect(test1)  # 设置进度条为垂直方向

4、倒立外观

(1)框架

(2)操作及展示

1 # 倒立外观
2 pb.setInvertedAppearance(True)

5、信号

 1 # 信号
 2 timer = QTimer(pb)
 3 
 4 def change_progress():
 5     # print('xxx')
 6     if pb.value() == pb.maximum():
 7         timer.stop()
 8     pb.setValue(pb.value() + 1)
 9 
10 
11 timer.timeout.connect(change_progress)
12 timer.start(1000)
13 
14 pb.valueChanged.connect(lambda val: print("当前进度值:", val))
原文地址:https://www.cnblogs.com/fengxb1213/p/12829141.html