九、pyqt5进度条——qprogressbar

  • Post category:other

以下是关于“PyQt5进度条——QProgressBar”的完整攻略,包括基本概念、使用方法和两个示例。

基本概念

QProgressBar是Qt5中的一个进度条控件,用于显示任务的进度。它可以显示任务的完成百分比,也可以显示任务的进度条。QProgressBar可以设置最小值、最大值和当前值,还可以设置进度条的样式和文本显示格式。

使用方法

以下是使用ProgressBar的基本方法:

  1. 创建QProgressBar对象:在PyQt5中,可以使用QProgressBar类创建一个进度条对象。
  2. 设置最小值、最大值和当前值:可以使用setMinimum、setMaximum和setValue方法设置进度条的最小值、最大值和当前值。
  3. 设置进度条样式:可以使用setStyleSheet方法设置进度条的样式。
  4. 设置文本显示格式:可以使用setFormat方法设置进度条的文本显示格式。

以下是两个示例:

示例一:显示任务的完成百分比

以下是QProgressBar显示任务的完成百分比的示例:

import sys
from PyQt5.QtWidgets import QApplication, QWidget, QProgressBar, QPushButton
from PyQt5.QtCore import QBasicTimer

class Example(QWidget):

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

        self.initUI()

    def initUI(self):

        self.pbar = QProgressBar(self)
        self.pbar.setGeometry(30, 40, 200, 25)

        self.btn = QPushButton('Start', self)
        self.btn.move(40, 80)
        self.btn.clicked.connect(self.doAction)

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

        self.setGeometry(300, 300, 280, 170)
        self.setWindowTitle('QProgressBar')
        self.show()

    def timerEvent(self, e):

        if self.step >= 100:

            self.timer.stop()
            self.btn.setText('Finished')
            return

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

    def doAction(self):

        if self.timer.isActive():
            self.timer.stop()
            self.btn.setText('Start')
        else:
            self.timer.start(100, self)
            self.btn.setText('Stop')

if __name__ == '__main__':

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

示例二:设置进度条样式和文本显示格式

以下是使用QProgressBar设置进度条样式和本显示格式的示例:

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

class Example(QWidget):

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

        self.initUI()

    def initUI(self):

        self.pbar = QProgressBar(self)
        self.pbar.setGeometry(30, 40, 200, 25)
        self.pbar.setStyleSheet("QProgressBar {border: 2px solid grey; border-radius: 5px; padding: 1px}"
                                "QProgressBar::chunk {background-color: #CD96CD; width: 10px;}")
        self.pbar.setAlignment(Qt.AlignCenter)
        self.pbar.setFormat('%p%')
        self.pbar.setValue(50)

        self.setGeometry(300, 300, 280, 170)
        self.setWindowTitle('QProgressBar')
        self.show()

if __name__ == '__main__':

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

结论

QProgressBar是PyQt5中的一个进度条控件,用于显示任务进度。它可以设置最小值、最大值和当前值,还可以设置进度条的样式和文本显示格式。使用QProgressBar的基本方法包括创建QProgressBar对象、设置最小值、大值和当前值、设置进度条样式和文本显示格式。可以使用示例学习和理解QProgressBar的使用方法。