📜  PyQt5 |垂直进度条(1)

📅  最后修改于: 2023-12-03 14:45:50.451000             🧑  作者: Mango

PyQt5 | 垂直进度条

PyQt5是一个流行的Python GUI工具包,它是基于Qt图形用户界面工具包开发的。PyQt5提供了大量的GUI组件,如按钮、文本框、列表框等等,其中包括进度条组件。本文将介绍如何在PyQt5中创建一个垂直进度条。

创建垂直进度条

在PyQt5中创建垂直进度条需要使用QProgressBar类。首先需要导入PyQt5相关模块,并创建一个应用程序对象:

import sys
from PyQt5.QtWidgets import QApplication, QProgressBar, QVBoxLayout, QWidget
 
app = QApplication(sys.argv)

然后,创建一个垂直进度条对象并将其添加到一个垂直布局中:

progress = QProgressBar()
layout = QVBoxLayout()
layout.addWidget(progress)
 
widget = QWidget()
widget.setLayout(layout)
widget.show()

这里使用了QVBoxLayout类来创建一个垂直布局并将进度条添加到其中。最后,将布局设置为应用程序的主要窗口并显示窗口:

app.setLayout(layout)
sys.exit(app.exec_())
设置进度条的范围和值

默认情况下,QProgressBar对象的最小值为0,最大值为100。要设置不同的范围,可以使用setMinimumsetMaximum方法:

progress.setMinimum(0)
progress.setMaximum(50)

此代码将进度条的最大值设置为50。要设置进度条的当前值,可以使用setValue方法:

progress.setValue(25)

此代码将进度条设置为25(以50为最大值)。

添加动画效果

要在进度条上添加动画效果,可以使用QProgressBar对象的setStyleSheet方法。这个方法接受一个CSS样式表,使用其中的::chunk选择器可以修改进度条的前景色:

progress.setStyleSheet("""
    QProgressBar {
        border: 2px solid grey;
        border-radius: 5px;
        color: grey;
        height: 15px;
        width: 50px;
    }
    QProgressBar::chunk {
        background-color: #CD96CD;
        width: 10px;
    }
""")

此代码将进度条的前景色设置为紫罗兰色,并缩小了进度条的宽度以显示动画效果。

完整代码
import sys
from PyQt5.QtWidgets import QApplication, QProgressBar, QVBoxLayout, QWidget
 
app = QApplication(sys.argv)
 
progress = QProgressBar()
progress.setMinimum(0)
progress.setMaximum(50)
progress.setValue(25)
 
progress.setStyleSheet("""
    QProgressBar {
        border: 2px solid grey;
        border-radius: 5px;
        color: grey;
        height: 15px;
        width: 50px;
    }
    QProgressBar::chunk {
        background-color: #CD96CD;
        width: 10px;
    }
""")
 
layout = QVBoxLayout()
layout.addWidget(progress)
 
widget = QWidget()
widget.setLayout(layout)
widget.show()
 
app.setLayout(layout)
sys.exit(app.exec_())

以上代码将创建一个垂直进度条,范围为0到50,当前值为25,还包括动画效果。