📜  PyQt5 – 填充进度条(1)

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

PyQt5 – 填充进度条

在本教程中,我们将学习如何使用 PyQt5 库来创建进度条并填充进度条。

PyQt5 进度条的创建

要创建 PyQt5 进度条,我们需要使用 QProgressBar 类。下面是创建一个简单 PyQt5 进度条的示例代码:

import sys
from PyQt5.QtWidgets import QApplication, QWidget, QProgressBar
from PyQt5.QtCore import QTimer

class App(QWidget):

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

        self.init_ui()

    def init_ui(self):
        self.setGeometry(100, 100, 300, 100)

        self.progress_bar = QProgressBar(self)
        self.progress_bar.setFixedWidth(200)
        self.progress_bar.move(50, 40)

        self.timer = QTimer(self)
        self.timer.timeout.connect(self.on_timeout)
        self.timer.start(50)

        self.show()

    def on_timeout(self):
        value = self.progress_bar.value()
        if value < 100:
            self.progress_bar.setValue(value + 1)
        else:
            self.timer.stop()

if __name__ == '__main__':
    app = QApplication(sys.argv)
    ex = App()
    sys.exit(app.exec_())

在该示例代码中,我们首先创建了一个 App 类,该类是 QWidget 的子类。然后,我们在该类中创建了一个 QProgressBar 对象,并设置其位置和大小。我们还创建了一个 QTimer 对象,它会定期发出 timeout 信号。在 on_timeout 方法中,我们检查进度条的值是否小于 100,如果是,我们将进度条的值递增 1。当进度条的值大于等于 100 时,我们停止 QTimer 对象。

PyQt5 进度条的填充

要填充 PyQt5 进度条,我们可以使用 QProgressBar 的 setValue 方法。我们将该方法与 QTimer 结合使用,以在特定时间内递增进度条的值。下面是填充 PyQt5 进度条的示例代码:

import sys
from PyQt5.QtWidgets import QApplication, QWidget, QProgressBar
from PyQt5.QtCore import QTimer

class App(QWidget):

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

        self.init_ui()

    def init_ui(self):
        self.setGeometry(100, 100, 300, 100)

        self.progress_bar = QProgressBar(self)
        self.progress_bar.setFixedWidth(200)
        self.progress_bar.move(50, 40)

        self.timer = QTimer(self)
        self.timer.timeout.connect(self.on_timeout)
        self.timer.start(50)

        self.show()

    def on_timeout(self):
        value = self.progress_bar.value()
        if value < 100:
            self.progress_bar.setValue(value + 1)
        else:
            self.timer.stop()

if __name__ == '__main__':
    app = QApplication(sys.argv)
    ex = App()
    sys.exit(app.exec_())

在该示例代码中,我们首先创建了一个 App 类,该类是 QWidget 的子类。然后,我们在该类中创建了一个 QProgressBar 对象,并设置其位置和大小。我们还创建了一个 QTimer 对象,它会定期发出 timeout 信号。在 on_timeout 方法中,我们检查进度条的值是否小于 100,如果是,我们将进度条的值递增 1。当进度条的值大于等于 100 时,我们停止 QTimer 对象。

结论

本教程介绍了如何使用 PyQt5 库来创建和填充进度条。我们首先创建了一个简单的 PyQt5 进度条,然后向该进度条添加了填充功能。可以根据需要修改这些示例代码,并将其用于实际项目中。