我想创建一个具有三个级别的嵌套菜单File-> Circuit->,然后选择Full Full of Half的选项,以后的选项可检查和排他。关于可检查的项目,尽管不是排他性的,我已经实现了这一目标。
尽管我无法添加另一个嵌套的组级别,但最初我使用了该示例(One QAction checkable at time in QMenu)将setExclusive在一个组中。我可以设置“文件”->“电路选择”,但不能设置“全选”或“半选”,这就是我选择以下方法设置菜单级别数的原因。
import sys
from PyQt5.QtWidgets import QMainWindow, QAction, QMenu, QApplication
class Example(QMainWindow):
def __init__(self):
super().__init__()
self.menubar = self.menuBar()
self.fileMenu = self.menubar.addMenu('File')
self.impMenu = QMenu('Circuit', self)
self.impAct0 = QAction('Half Bridge', self, checkable=True, checked=True)
self.impAct1 = QAction('Full Bridge', self, checkable=True, checked=False)
self.impMenu.addAction(self.impAct0)
self.impMenu.addAction(self.impAct1)
self.fileMenu.addMenu(self.impMenu)
self.setGeometry(300, 300, 300, 200)
self.show()
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = Example()
sys.exit(app.exec_())
答案 0 :(得分:0)
在问题链接的示例中,遵循被接受的答案:
class Example(QMainWindow):
def __init__(self):
super().__init__()
self.menubar = self.menuBar()
self.fileMenu = self.menubar.addMenu('File')
self.impMenu = QMenu('Circuit', self)
self.impAct0 = QAction('Half Bridge', self, checkable=True, checked=True)
self.impAct1 = QAction('Full Bridge', self, checkable=True, checked=False)
self.impMenu.addAction(self.impAct0)
self.impMenu.addAction(self.impAct1)
self.fileMenu.addMenu(self.impMenu)
self.setGeometry(300, 300, 300, 200)
self.action_group = QActionGroup(self)
self.action_group.addAction(self.impAct0)
self.action_group.addAction(self.impAct1)
self.action_group.setExclusive(True)
self.show()