# 进度条 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