原文: https://pythonbasics.org/Progressbar/

QProgressBar是显示过程的小部件。 您可能在安装过程中多次看到它。

小部件显示一个条,您可以看到完成的百分比。 您可以使用方法setValue()设置其值。 如果将 50 设置为 50%。

QProgressBar

进度条

使用下面的代码创建进度条:

  1. self.pbar = QProgressBar(self)
  2. self.pbar.setGeometry(30, 40, 200, 25)

您可以使用以下方法设置值:

  1. self.pbar.setValue(50)

这就是创建进度条所需的全部。

要更新其值,您可以使用QTimer

  1. from PyQt5.QtCore import QBasicTimer

每秒用以下几行调用一个方法:

  1. self.timer = QTimer() self.timer.timeout.connect(self.handleTimer)
  2. self.timer.start(1000)

然后更新进度条值:

  1. def handleTimer(self):
  2. value = self.pbar.value()
  3. if value < 100:
  4. value = value + 1
  5. self.pbar.setValue(value)
  6. else:
  7. self.timer.stop()

进度条 - 图1

示例

复制下面的代码以查看进度条从 50% 到 100% 的计数。使用handleTimer()QTimer()方法更新进度条。

  1. import sys
  2. from PyQt5.QtCore import QTimer
  3. from PyQt5.QtWidgets import QApplication, QMainWindow, QProgressBar
  4. from PyQt5.QtCore import Qt
  5. class Example(QMainWindow):
  6. def __init__(self):
  7. super().__init__()
  8. self.pbar = QProgressBar(self)
  9. self.pbar.setGeometry(30, 40, 200, 25)
  10. self.pbar.setValue(50)
  11. self.setWindowTitle("QT Progressbar Example")
  12. self.setGeometry(32,32,320,200)
  13. self.show()
  14. self.timer = QTimer()
  15. self.timer.timeout.connect(self.handleTimer)
  16. self.timer.start(1000)
  17. def handleTimer(self):
  18. value = self.pbar.value()
  19. if value < 100:
  20. value = value + 1
  21. self.pbar.setValue(value)
  22. else:
  23. self.timer.stop()
  24. if __name__ == '__main__':
  25. app = QApplication(sys.argv)
  26. ex = Example()
  27. sys.exit(app.exec_())

下载示例