PyQt5 – 进度条描述

  • Post category:Python

接下来我会为您讲解Python PyQt5模块的进度条描述功能的完整使用攻略。

PyQt5 – 进度条描述

PyQt5是一个强大的Python GUI框架,支持多种功能,包括进度条描述。

原理介绍

在PyQt5模块中,我们可以使用QProgressBar控件来创建进度条,使用setValue()函数设置进度,使用setFormat()函数设置进度条的显示格式。

使用步骤

  1. 导入PyQt5模块

python
from PyQt5.QtWidgets import QWidget, QProgressBar, QPushButton, QApplication, QVBoxLayout
import sys

  1. 创建窗口控件

“`python
class App(QWidget):
def init(self):
super().init()

       self.initUI()


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

       btn = QPushButton('Start', self)
       btn.move(0, 30)

       vbox = QVBoxLayout()
       vbox.addWidget(self.progress)
       vbox.addWidget(btn)

       self.setLayout(vbox)

       btn.clicked.connect(self.doAction)

       self.show()

“`

  1. 设置进度条的值和显示格式

“`python
def doAction(self):
self.progress.setMaximum(100)
self.progress.setMinimum(0)

       for i in range(101):
           self.progress.setValue(i)
           if i % 5 == 0:
               self.progress.setFormat('{0}%'.format(i))

       self.progress.setFormat('Complete')

“`

上面的代码会创建一个进度条,最大值为100,最小值为0,使用循环来设置进度条的值,并且每5%动态更新进度条的显示格式。

示例1

下面是一个完整的示例,在这个示例中,我们可以看到一个进度条,点击按钮时会开始逐步增加进度条的值,最后设置进度条的显示格式为”完成”。

from PyQt5.QtWidgets import QWidget, QProgressBar, QPushButton, QApplication, QVBoxLayout
import sys


class App(QWidget):
    def __init__(self):
        super().__init__()

        self.initUI()


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

        btn = QPushButton('Start', self)
        btn.move(0, 30)

        vbox = QVBoxLayout()
        vbox.addWidget(self.progress)
        vbox.addWidget(btn)

        self.setLayout(vbox)

        btn.clicked.connect(self.doAction)

        self.show()


    def doAction(self):
        self.progress.setMaximum(100)
        self.progress.setMinimum(0)

        for i in range(101):
            self.progress.setValue(i)
            if i % 5 == 0:
                self.progress.setFormat('{0}%'.format(i))

        self.progress.setFormat('Complete')


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

示例2

下面是另一个示例,我们可以看到一个进度条,每隔一段时间会自动增加进度条的值,并动态更新进度条的显示格式。

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


class App(QWidget):
    def __init__(self):
        super().__init__()

        self.initUI()


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

        vbox = QVBoxLayout()
        vbox.addWidget(self.progress)

        self.setLayout(vbox)

        self.timer = QTimer(self)
        self.timer.timeout.connect(self.advanceProgressBar)
        self.value = 0
        self.show()


    def advanceProgressBar(self):
        self.value = (self.value + 1) % 101
        self.progress.setValue(self.value)
        self.progress.setFormat('{0}%'.format(self.value))


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

以上就是关于使用Python PyQt5模块的进度条描述的完整攻略,希望能对您有所帮助。