Breadcrumb 面包屑
显示当前页面的路径,方便用户在层次结构中快速返回上一级或某一级祖先节点。
基础用法

from monkeyqt import MkBreadcrumb
breadcrumb = MkBreadcrumb(separator="/")
# 设置面包屑的数据项列表 # 最后一项会自动渲染为不可点击的当前项,之前的项都是可点击链接
breadcrumb.set_items([
{"id": "home", "text": "首页"},
{"id": "user-center", "text": "个人中心"},
{"id": "settings", "text": "账户设置"}
])
自定义分隔符
默认分隔符为 "/",你可以传入任意字符作为分隔符(">"):
# 使用右箭头作为分隔符
breadcrumb = MkBreadcrumb(separator=">")
API 属性与方法
MkBreadcrumb 构造函数 &
MkBreadcrumb(separator="/", parent=None)
| 参数 |
类型 |
默认值 |
说明 |
separator |
str |
"/" |
面包屑节点之间的分隔符文本 |
核心方法
| 方法名 |
参数 |
返回值 |
说明 |
set_items(items) |
list |
None |
设置面包屑内容。items 的每一项必须是字典,格式为 {"id": str, "text": str}。最后一个元素会自动被当作当前页面(不可点击,深色显示) |
信号
| 信号名称 |
参数 |
说明 |
itemClicked |
(str) |
当面包屑的祖先节点被点击时发射该信号,参数为对应节点的 id |
示例代码
import sys
from PySide6.QtWidgets import QApplication, QWidget, QVBoxLayout, QLabel
from monkeyqt import MkBreadcrumb
class BreadcrumbDemo(QWidget):
def __init__(self):
super().__init__()
self.setWindowTitle("Breadcrumb Demo")
self.resize(500, 150)
layout = QVBoxLayout(self)
layout.setSpacing(20)
# 1. 默认斜杠分隔的面包屑
self.breadcrumb_1 = MkBreadcrumb()
self.breadcrumb_1.set_items([
{"id": "index", "text": "首页"},
{"id": "system", "text": "系统设置"},
{"id": "logs", "text": "操作日志"}
])
layout.addWidget(self.breadcrumb_1)
# 2. 自定义右箭头分隔符 self.breadcrumb_2 = MkBreadcrumb(separator=">")
self.breadcrumb_2.set_items([
{"id": "home", "text": "Home"},
{"id": "components", "text": "Components"},
{"id": "navigation", "text": "Navigation"},
{"id": "breadcrumb", "text": "Breadcrumb"}
])
layout.addWidget(self.breadcrumb_2)
# 状态指示标签 self.status_label = QLabel("点击面包屑节点查看输出" ))
self.status_label.setStyleSheet("color: #909399; font-size: 13px;")
layout.addWidget(self.status_label)
# 绑定信号
self.breadcrumb_1.itemClicked.connect(self._on_item_clicked)
self.breadcrumb_2.itemClicked.connect(self._on_item_clicked)
def _on_item_clicked(self, node_id):
self.status_label.setText(f"点击了节点 ID: {node_id}")
if __name__ == "__main__":
app = QApplication(sys.argv)
window = BreadcrumbDemo()
window.show()
sys.exit(app.exec())