九、Pyqt5進度條——QProgressBar


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)

  如果將上面兩行代碼去掉,就會顯示正常效果,如下所示:


免責聲明!

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



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