📅  最后修改于: 2023-12-03 15:03:59.682000             🧑  作者: Mango
PyQt5是一个用于创建GUI应用程序的Python库,可以轻松构建漂亮的用户界面。在PyQt5中,进度条是一个常见的UI控件,可以用来表示某个任务的进度情况。但是,在默认情况下,进度条没有边框,如果需要为进度条添加边框,需要使用一些技巧。
在PyQt5中,可以使用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_())
运行上述代码,可以看到如下效果图:
可以看到,进度条被放置在一个带有边框的QFrame控件中,使其看起来更加美观。
通过QFrame控件和样式表,可以为PyQt5中的进度条添加边框,提升UI美观度。