PyQt5 – 如何删除进度条上的百分比符号

  • Post category:Python

接下来我将详细讲解如何在PyQt5中删除进度条上的百分比符号。

1. 什么是 PyQT5 进度条组件

PyQT5中的进度条组件是用于表示长时间运行任务进度的控件。进度条通常用于展示耗时的操作进度,例如下载或上传文件,读取大型数据集或进行其他长时间计算等。进度条会在两端之间绘制一个条形图形来表示任务进度。

2. 使用 PyQt5 的 QProgressBar 组件

在PyQt5中,可以通过使用QProgressBar(进度条)类轻松添加一个进度条控件。我们可以使用setRange(min, max)函数设置进度条的最小值和最大值。这意味着当进度条的最大值设置为100时,它将显示任务的百分比。

以下是一个简单的示例:

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

class Example(QWidget):

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

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

        self.progress = QProgressBar(self)
        self.progress.setGeometry(0, 0, 250, 15)

        self.button = QPushButton('Start', self)
        self.button.move(0, 20)
        self.button.clicked.connect(self.start_progress)

        self.timer = QTimer(self)
        self.timer.timeout.connect(self.update_progress)

        self.show()

    def start_progress(self):
        self.progress.setMaximum(0)
        self.progress.setMinimum(0)
        self.timer.start(100)

    def update_progress(self):
        value = self.progress.value() + 1
        self.progress.setValue(value)
        if value >= 100:
            self.timer.stop()
            self.button.setText('Finished')

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

该代码实现了一个进度条组件,当点击 Start 按钮时,进度条将开始滚动并在进度条完成之后停止。在这个示例中,我们使用了一个 QTimer 对象来实现进度条的动态更新。值得注意的是,在该示例中,我们没有更改进度条的前缀和后缀。因此,进度条上显示了百分比符号。

3. 如何删除符号

要删除进度条上的百分比符号,我们可以通过调用 setFormat() 方法并将新的字符串格式设置为空以删除前缀和后缀。

下面是一个示例代码:

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

class Example(QWidget):

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

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

        self.progress = QProgressBar(self)
        self.progress.setGeometry(0, 0, 250, 15)
        self.progress.setFormat('')

        self.button = QPushButton('Start', self)
        self.button.move(0, 20)
        self.button.clicked.connect(self.start_progress)

        self.timer = QTimer(self)
        self.timer.timeout.connect(self.update_progress)

        self.show()

    def start_progress(self):
        self.progress.setMaximum(0)
        self.progress.setMinimum(0)
        self.timer.start(100)

    def update_progress(self):
        value = self.progress.value() + 1
        self.progress.setValue(value)
        if value >= 100:
            self.timer.stop()
            self.button.setText('Finished')

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

在这个示例中,我们只需要添加一行代码 self.progress.setFormat('') 即可删除进度条上的百分比符号。请注意,我们将 format 参数设置为空字符串。

这就是如何在 PyQt5 中删除进度条上的百分比符号的方法。希望上述示例代码可以为您带来帮助。