📜  PyQt5 – 为进度条添加边框(1)

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

PyQt5 – 为进度条添加边框

简介

PyQt5是一个用于创建GUI应用程序的Python库,可以轻松构建漂亮的用户界面。在PyQt5中,进度条是一个常见的UI控件,可以用来表示某个任务的进度情况。但是,在默认情况下,进度条没有边框,如果需要为进度条添加边框,需要使用一些技巧。

实现方法

在PyQt5中,可以使用QFrame控件来为进度条添加边框。具体实现步骤如下:

  1. 创建一个QFrame控件,用于将进度条放入其中。
  2. 创建一个QProgressBar控件,并将其放入QFrame控件中。
  3. 通过设置QFrame控件的样式表来为其添加边框。
import sys
from PyQt5.QtWidgets import QApplication, QWidget, QProgressBar, QFrame
from PyQt5.QtCore import Qt

class Example(QWidget):

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

        self.initUI()

    def initUI(self):

        # 创建QFrame控件
        frame = QFrame(self)
        frame.setFrameShape(QFrame.StyledPanel)
        frame.setGeometry(30, 30, 200, 50)

        # 创建QProgressBar控件并放入QFrame控件中
        self.pbar = QProgressBar(frame)
        self.pbar.setGeometry(10, 10, 180, 30)

        # 设置QFrame控件的样式表
        style = """
        QFrame {
            border-style: outset;
            border-width: 2px;
            border-radius: 10px;
            border-color: #FFB6C1;
        }
        """
        frame.setStyleSheet(style)

        # 更新进度条的值
        self.timer = self.startTimer(1000)
        self.step = 0

        self.setGeometry(300, 300, 300, 200)
        self.setWindowTitle('PyQt5 - Progress Bar with Border')
        self.show()

    def timerEvent(self, event):

        if self.step >= 100:
            self.killTimer(self.timer)
            return

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

if __name__ == '__main__':

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

运行上述代码,可以看到如下效果图:

PyQt5 - Progress Bar with Border

可以看到,进度条被放置在一个带有边框的QFrame控件中,使其看起来更加美观。

总结

通过QFrame控件和样式表,可以为PyQt5中的进度条添加边框,提升UI美观度。