pyqt 创建一个可展开的菜单
时间: 2024-10-18 10:02:37 浏览: 13
在PyQt中,创建一个可展开的菜单通常是在`QMenu`和`QAction`的基础上完成的。下面是一个简单的示例,展示如何创建一个可展开的下拉菜单:
```python
from PyQt5.QtWidgets import QApplication, QMainWindow, QMenu, QActionGroup, QAction
class MyWindow(QMainWindow):
def __init__(self):
super().__init__()
# 创建顶级菜单
menu_bar = self.menuBar()
file_menu = menu_bar.addMenu('文件')
# 创建一个动作组用于管理可展开菜单
action_group = QActionGroup(self)
# 创建第一个可展开菜单项
submenu1 = QMenu('子菜单1')
submenu1.addAction(QAction('选项1', self))
submenu1.addAction(QAction('选项2', self))
# 添加到动作组并添加到顶级菜单
action_group.addAction(submenu1.menuAction())
file_menu.addAction(action_group.menuAction())
# 创建第二个可展开菜单项
submenu2 = QMenu('子菜单2')
submenu2.addAction(QAction('选项3', self))
submenu2.addAction(QAction('选项4', self))
# 同样添加到动作组和菜单
action_group.addAction(submenu2.menuAction())
file_menu.addMenu(action_group)
app = QApplication([])
window = MyWindow()
window.show()
app.exec_()
```
在这个例子中,我们首先创建了一个顶级菜单"文件",然后创建了两个`QMenu`对象作为子菜单。每个子菜单关联到一个`QActionGroup`,这样它们可以在同一个菜单项下共享相同的热键或上下文菜单。当你点击包含这些子菜单的顶级菜单项时,会显示对应的子菜单。
阅读全文