qmenu怎么设置一级菜单和二级菜单水平对齐
时间: 2024-03-13 12:47:24 浏览: 104
使用CSS+jQuery实现的水平二级菜单
4星 · 用户满意度95%
要实现一级菜单和二级菜单水平对齐,需要在 QMenu 的样式表中设置子菜单的偏移量为零。可以使用如下代码:
```python
menuBar = self.menuBar()
fileMenu = menuBar.addMenu("File")
# 添加一级菜单
newAction = QAction("New", self)
fileMenu.addAction(newAction)
# 添加二级菜单
saveMenu = QMenu("Save", self)
fileMenu.addMenu(saveMenu)
saveAction = QAction("Save As", self)
saveMenu.addAction(saveAction)
# 设置样式表
styleSheet = "QMenu::item { padding: 2px 20px; } \
QMenu::item:selected { background-color: #0078d7; color: white; } \
QMenu::item:pressed { background-color: #002f5e; color: white; } \
QMenu::indicator { width: 13px; height: 13px; } \
QMenu::right-arrow { width: 8px; height: 8px; } \
QMenu::item:disabled { color: #bfbfbf; } \
QMenu::separator { height: 1px; background-color: #bfbfbf; margin: 4px 0; } \
QMenu::item:has-children { subcontrol-origin: padding; subcontrol-position: right center; } \
QMenu::icon:checked { image: url(checked.png); } \
QMenu::icon:unchecked { image: url(unchecked.png); } \
QMenu::drop-down { subcontrol-origin: padding; subcontrol-position: right center; width: 20px; } \
QMenu QMenu { left: 100%; top: 0; margin: 0; }"
fileMenu.setStyleSheet(styleSheet)
```
其中,样式表中的 `QMenu QMenu` 选择器表示二级菜单,设置其 `left` 属性为 `100%` 表示在一级菜单右侧显示,设置其 `top` 和 `margin` 属性为 `0` 表示与一级菜单水平对齐。
阅读全文