来讲解一下Python的PyQt5 QProgressBar的创建和使用攻略。
一、QProgressBar简介
QProgressBar是PyQt5中的一个进度条组件,用于显示任务的进度。通常在执行耗时的任务时,使用进度条来提示用户任务的进度,使用户了解任务的完成情况和剩余时间。QProgressBar可以显示任务的百分比、当前值、最小值和最大值。
二、QProgressBar的使用方法
2.1 创建QProgressBar
可以使用如下代码创建一个QProgressBar:
import sys
from PyQt5.QtWidgets import QApplication, QWidget, QProgressBar
class App(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
self.progress = QProgressBar(self)
self.progress.setGeometry(10, 10, 200, 25)
self.setGeometry(300, 300, 250, 150)
self.setWindowTitle('QProgressBar')
self.show()
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = App()
sys.exit(app.exec_())
2.2 设置QProgressBar的值
可以使用setValue()方法设置QProgressBar的当前值:
import sys
from PyQt5.QtWidgets import QApplication, QWidget, QPushButton, QProgressBar
class App(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
self.progress = QProgressBar(self)
self.progress.setGeometry(10, 10, 200, 25)
self.btn = QPushButton('Start', self)
self.btn.move(10, 50)
self.btn.clicked.connect(self.doAction)
self.setGeometry(300, 300, 250, 150)
self.setWindowTitle('QProgressBar')
self.show()
def doAction(self):
self.btn.setEnabled(False)
for i in range(101):
self.progress.setValue(i)
self.progress.setFormat("%d%%" % i)
QApplication.processEvents()
self.btn.setEnabled(True)
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = App()
sys.exit(app.exec_())
三、示例程序及解释
上面的例子演示了如何创建一个带有“Start”按钮的窗口和一个进度条。当用户点击“Start”按钮时,进度条会从0开始计数,显示任务的进度。当进度条达到100时,任务完成。
在这个示例程序中,我们定义了一个按钮,当用户单击按钮时,我们使用for循环模拟一个耗时的任务。在每个迭代中,我们使用setValue()方法设置QProgressBar的当前值,并使用setFormat()方法设置进度条上显示的文本。由于for循环在执行的过程中,界面可能会冻结不响应,为了保证界面的及时响应,我们使用QApplication.processEvents()方法处理事件。