原文: https://pythonspot.com/qt4-progressbar/

在本文中,我们将演示如何使用进度条小部件。 进度条与其他小部件的不同之处在于,它会及时更新。

QT4 进度条示例

让我们从代码开始:

  1. #! /usr/bin/env python
  2. # -*- coding: utf-8 -*-
  3. #
  4. import sys
  5. from PyQt4.QtGui import *
  6. from PyQt4.QtCore import *
  7. from PyQt4.QtCore import pyqtSlot,SIGNAL,SLOT
  8. class QProgBar(QProgressBar):
  9. value = 0
  10. @pyqtSlot()
  11. def increaseValue(progressBar):
  12. progressBar.setValue(progressBar.value)
  13. progressBar.value = progressBar.value+1
  14. # Create an PyQT4 application object.
  15. a = QApplication(sys.argv)
  16. # The QWidget widget is the base class of all user interface objects in PyQt4.
  17. w = QWidget()
  18. # Set window size.
  19. w.resize(320, 240)
  20. # Set window title
  21. w.setWindowTitle("PyQT4 Progressbar @ pythonspot.com ")
  22. # Create progressBar.
  23. bar = QProgBar(w)
  24. bar.resize(320,50)
  25. bar.setValue(0)
  26. bar.move(0,20)
  27. # create timer for progressBar
  28. timer = QTimer()
  29. bar.connect(timer,SIGNAL("timeout()"),bar,SLOT("increaseValue()"))
  30. timer.start(400)
  31. # Show window
  32. w.show()
  33. sys.exit(a.exec_())

实例barQProgBar类的)用于保存进度条的值。 我们调用函数setValue()来更新其值。 给定参数w将其附加到主窗口。 然后,将其移动到屏幕上的位置(0, 20),并为其指定宽度和高度。

为了及时更新进度条,我们需要一个QTimer()。 我们将小部件与计时器连接起来,计时器将调用函数gainValue()。 我们将计时器设置为每 400 毫秒重复一次函数调用。 您还会看到单词SLOTSIGNAL。 如果用户执行诸如单击按钮,在框中键入文本之类的操作,则该小部件会发出信号。 该信号没有任何作用,但可用于连接一个槽,该槽充当接收器并对其起作用。

结果:

QT4 进度条 - 图1

PyQT 进度条

下载 PyQT 代码(批量收集)