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))

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM