QMenu移除二级菜单
时间: 2023-08-30 07:09:39 浏览: 75
要移除QMenu中的二级菜单,可以使用QAction的setMenu方法将该QAction与二级菜单分离。以下是一个示例代码:
```python
from PyQt5.QtWidgets import QApplication, QMainWindow, QMenu, QAction
class MyWindow(QMainWindow):
def __init__(self):
super().__init__()
# 创建主菜单
file_menu = QMenu('File', self)
edit_menu = QMenu('Edit', self)
# 创建一级菜单项
file_action = QAction('Open', self)
edit_action = QAction('Copy', self)
# 创建二级菜单项
sub_menu = QMenu('Sub Menu', self)
sub_menu.addAction('Sub Item 1')
sub_menu.addAction('Sub Item 2')
# 将二级菜单项添加到一级菜单项中
file_action.setMenu(sub_menu)
# 将菜单项添加到主菜单中
file_menu.addAction(file_action)
edit_menu.addAction(edit_action)
# 将主菜单添加到菜单栏中
self.menuBar().addMenu(file_menu)
self.menuBar().addMenu(edit_menu)
# 移除二级菜单
file_action.setMenu(None)
if __name__ == '__main__':
app = QApplication([])
window = MyWindow()
window.show()
app.exec_()
```
在这个示例中,我们首先创建了一个带有一个二级菜单的一级菜单项。然后,我们将该一级菜单项添加到主菜单中。最后,我们使用setMenu方法将该一级菜单项与二级菜单分离,从而将二级菜单移除。