Progress 进度条与进度环¶
用于展示操作进度或当前状态的百分比。MonkeyQt 提供了两种进度显示方式:
MkProgressBar:线形进度条MkProgressRing:环形进度条
MkProgressBar 线形进度条¶
基础用法¶

属性与 API¶
| 属性名称 | 类型 | 默认值 | 说明 |
|---|---|---|---|
percentage |
int |
0 |
进度百分比,可选值 0-100 |
status |
str |
"normal" |
进度条状态,可选值为 "normal", "success", "warning", "exception" |
stroke_width |
int |
6 |
进度条的宽度(像素) |
show_text |
bool |
True |
是否显示进度文字 |
text_inside |
bool |
False |
进度文字是否内置在进度条内部(需将 stroke_width 设置足够大,例如 18) |
MkProgressRing 环形进度条¶
基础用法¶

属性与 API¶
| 属性名称 | 类型 | 默认值 | 说明 |
|---|---|---|---|
percentage |
int |
0 |
进度百分比,可选值 0-100 |
status |
str |
"normal" |
状态,可选值为 "normal", "success", "warning", "exception" |
stroke_width |
int |
6 |
进度环的线条宽度 |
width |
int |
120 |
整个进度环的宽度/高度尺寸 |
show_text |
bool |
True |
是否显示中间的进度文字 |
示例代码¶
以下示例展示了不同状态和样式的进度条与进度环 &
import sys
from PySide6.QtWidgets import QApplication, QWidget, QVBoxLayout, QHBoxLayout
from monkeyqt import MkProgressBar, MkProgressRing
class ProgressDemo(QWidget):
def __init__(self):
super().__init__()
self.setWindowTitle("Progress Demo")
self.resize(400, 300)
layout = QVBoxLayout(self)
layout.setSpacing(20)
# 1. 各种状态的进度条 bar_layout = QVBoxLayout()
bar_layout.addWidget(MkProgressBar(percentage=30, status="normal"))
bar_layout.addWidget(MkProgressBar(percentage=70, status="success"))
bar_layout.addWidget(MkProgressBar(percentage=90, status="warning", stroke_width=10))
bar_layout.addWidget(MkProgressBar(percentage=100, status="exception", stroke_width=12))
# 文字内显进度条 bar_layout.addWidget(MkProgressBar(percentage=80, stroke_width=18, text_inside=True, status="success"))
layout.addLayout(bar_layout)
# 2. 各种状态的进度环 ring_layout = QHBoxLayout()
ring_layout.addWidget(MkProgressRing(percentage=25, status="normal", width=80))
ring_layout.addWidget(MkProgressRing(percentage=50, status="success", width=80))
ring_layout.addWidget(MkProgressRing(percentage=75, status="warning", width=80))
ring_layout.addWidget(MkProgressRing(percentage=100, status="exception", width=80))
layout.addLayout(ring_layout)
if __name__ == "__main__":
app = QApplication(sys.argv)
window = ProgressDemo()
window.show()
sys.exit(app.exec())