# 進度條 self.progressBar.setValue(0) # 設置進度條的最小值 self.progressBar.setMaximum(100) # 設置進度條的最大值
# 設置進度條當前值 self.progressBar.setValue((int(curindex/excelNum)*100))
常用方法
方法 | 值 | 說明 |
---|---|---|
setRange | QProgressBar.setRange(min, Max) | 通過 setRange 方法設定步驟個數 |
setValue | QProgressBar.setValue(number) | QProgressBar.setValue()該方法設置進度條的當前值,value值不停地增加,進度就在增加 例如:setValue(5) :??假如整個step是10,則表示完成整個步驟的5/10,即50% |
setMaximum() | 0?—?99 例如:QProgressBar.setMaximum(99) | 設置step的最大值,默認值是99 例如:QProgressBar.setMaximum(99) ??表示step最大值為99 |
setMinimum() | 0?—?99 例如:QProgressBar.setMinimum(0) | 設置stepd最小值,默認值是0 例如:QProgressBar.setMinimum(0) ??表示step最小值為0 |
reset() | QProgressBar.reset() | 設置進度條重新開始 |
setOrientation | QProgressBar.setOrientation(Qt.Horizontal) QProgressBar.setOrientation(Qt.Vertical) | QProgressBar.setOrientation()該屬性設置了進度條的方向; 方向必須是Qt.Horizontal(默認,水平)或Qt.Vertical(垂直) 注意:水平和垂直,需導入 from PyQt5.QtCore import Qt |
setFormat | %p% — 被完成的百分比取代 %v% — 被當前值替換 %m% — 被總step所取代 默認值是 :?%p% 注意:如果沒有加第二個%(即%p),顯示的指數則沒有% | QProgressBar.setFormat()屬性包含用于生成當前文本的字符串 |
setInvertedAppearance | setInvertedAppearance(True) setInvertedAppearance(False) | 設置進度條的走向; QProgressBar.setInvertedAppearance(True) ??進度條從左到右(水平進度條)/從上到下(垂直進度條) QProgressBar.setInvertedAppearance(False) ??進度條從右到左(水平進度條)/從下到上(垂直進度條) |
?實例:
import sys
from PyQt5.QtWidgets import QApplication, QWidget, QPushButton, QProgressBar
from PyQt5.QtCore import QBasicTimerclass MyClass(QWidget):def __init__(self):super().__init__()self.initUI()def initUI(self):self.resize(300, 200)# 載入進度條控件self.pgb = QProgressBar(self)self.pgb.move(50, 50)self.pgb.resize(250, 20)# 配置一個值表示進度條的當前進度self.pv = 0# 申明一個時鐘控件self.timer1 = QBasicTimer()# 設置進度條的范圍self.pgb.setMinimum(0)self.pgb.setMaximum(100)self.pgb.setValue(self.pv)# 載入按鈕self.btn = QPushButton("開始", self)self.btn.move(50, 100)self.btn.clicked.connect(self.myTimerState)self.show()def myTimerState(self):if self.timer1.isActive():self.timer1.stop()self.btn.setText("開始")else:self.timer1.start(100, self)self.btn.setText("停止")def timerEvent(self, e):if self.pv == 100:self.timer1.stop()self.btn.setText("完成")else:self.pv += 1self.pgb.setValue(self.pv)if __name__ == "__main__":app = QApplication(sys.argv)mc = MyClass()app.exec_()
?
參考:
PyQt5 進度條(QProgressBar)的使用 - Q公子 - 博客園https://www.cnblogs.com/itwangqiang/articles/14959401.html