Dropdown 下拉菜单
将动作或折叠多余的操作收纳在下拉菜单中,点击后弹出一个轻量级的菜单列表进行操作。
基础用法

from monkeyqt import MkDropdown
# 创建一个显示文本为 "操作" 的下拉菜单dropdown = MkDropdown(text="操作")
# 添加子菜单项
dropdown.add_item("编辑", "edit")
dropdown.add_item("分享", "share")
dropdown.add_separator() # 添加分割线
dropdown.add_item("删除", "delete")
# 绑定信号
dropdown.itemClicked.connect(lambda action_id: print(f"点击了操作: {action_id}"))
API 属性与方法
MkDropdown 构造函数 &
MkDropdown(text="Dropdown", parent=None)
| 参数 |
类型 |
默认值 |
说明 |
text |
str |
"Dropdown" |
下拉菜单按钮默认显示的文字 |
核心方法
| 方法名 |
参数 |
返回值 |
说明 |
add_item(text, item_id="") |
(str, str) |
QAction |
添加菜单项。若 item_id 未指定,则默认使用 text 作为信号发射值 |
add_separator() |
() |
QAction |
添加一条水平分割线 |
信号
| 信号名称 |
参数 |
说明 |
itemClicked |
(str) |
当下拉菜单中的菜单项被点击时发射该信号,携带被点击项的 item_id |
示例代码
import sys
from PySide6.QtWidgets import QApplication, QWidget, QHBoxLayout, QLabel
from monkeyqt import MkDropdown
class DropdownDemo(QWidget):
def __init__(self):
super().__init__()
self.setWindowTitle("Dropdown Demo")
self.resize(400, 200)
layout = QHBoxLayout(self)
# 1. 更多操作下拉框 self.dropdown = MkDropdown("更多操作")
self.dropdown.add_item("复制链接", "copy")
self.dropdown.add_item("刷新页面", "refresh")
self.dropdown.add_separator()
self.dropdown.add_item("导出PDF", "export")
layout.addWidget(self.dropdown)
# 2. 状态标签 self.status_label = QLabel("暂无操作")
self.status_label.setStyleSheet("color: #606266; font-size: 14px;")
layout.addWidget(self.status_label)
# 3. 关联事件
self.dropdown.itemClicked.connect(self._on_item_clicked)
def _on_item_clicked(self, action_id):
actions = {
"copy": "🔗 链接已复,
"refresh": "🔄 页面已刷,
"export": "📄 PDF 正在导出.."
}
self.status_label.setText(actions.get(action_id, "未知操作"))
if __name__ == "__main__":
app = QApplication(sys.argv)
window = DropdownDemo()
window.show()
sys.exit(app.exec())