📜  PyQt5 - 进度条说明(1)

📅  最后修改于: 2023-12-03 15:03:56.629000             🧑  作者: Mango

PyQt5 - 进度条说明

PyQt5 进度条(QProgressBar)是一种可视化控件,用于在 GUI 应用程序中显示进度的状态。该控件允许您指定一个工作流程的进度,并将其呈现给用户。在本篇文章中,我们将介绍如何使用 PyQt5 中的 QProgressBar 控件来创建进度条。

创建进度条

您可以通过以下方法来创建一个进度条:

progressBar = QProgressBar(self)

其中 self 是控件所属的父窗口。您还可以使用以下方式来设置进度条的最小值、最大值和初始值:

progressBar.setMinimum(0)
progressBar.setMaximum(100)
progressBar.setValue(0)
更新进度条

要更新进度条的当前值,请使用 setValue() 方法:

progressBar.setValue(50)

在实际应用程序中,您需要根据工作流程的进度更新进度条的值。例如,如果您正在处理一个文件,请在处理过程中定期更新进度条。您可以使用定时器或其他机制来触发更新事件。

设置进度条样式

您可以使用 setStyleSheet() 方法来设置进度条的样式。例如,以下代码将进度条的颜色设置为蓝色:

progressBar.setStyleSheet("QProgressBar { border: 2px solid gray; border-radius: 5px; background-color: #FFFFFF; } QProgressBar::chunk { background-color: #3CA7F3; width: 20px; }")

您可以通过样式表更改进度条的外观和感觉,包括边框、填充和进度块的颜色。

示例代码
import sys
from PyQt5.QtWidgets import QApplication, QWidget, QProgressBar
from PyQt5.QtCore import QBasicTimer

class Example(QWidget):

    def __init__(self):
        super().__init__()

        self.initUI()

    def initUI(self):

        self.progress = QProgressBar(self)
        self.progress.setGeometry(0, 0, 300, 25)

        self.timer = QBasicTimer()
        self.step = 0

        self.setGeometry(300, 300, 300, 150)
        self.setWindowTitle('Progress Bar')
        self.show()

    def timerEvent(self, e):

        if self.step >= 100:
            self.timer.stop()
            return

        self.step = self.step + 1
        self.progress.setValue(self.step)

    def startProgressBar(self):

        if self.timer.isActive():
            return

        self.timer.start(100, self)

if __name__ == '__main__':

    app = QApplication(sys.argv)
    ex = Example()
    ex.startProgressBar()
    sys.exit(app.exec_())

在上面的示例代码中,我们创建了一个窗口和一个进度条。使用 QBasicTimertimerEvent() 方法模拟了一个工作流程,该工作流程每 100 毫秒更新一次进度条。

总结

PyQt5 中的 QProgressBar 是一个功能强大的可视化控件。它允许您指定一个工作流程的进度,并将其呈现给用户。在实际应用程序中,您需要根据工作流程的进度更新进度条的值。您可以使用样式表更改进度条的外观和感觉,包括边框、填充和进度块的颜色。