在工具中将所有启用的 QAction 项目设置为 False?
set all QAction items enabled to False within tool?
pyside 中是否有一种方法可以将所有 QAction 项设置为在工具中的任何位置启用 = False?
例如说我在我的代码中写了这个...
# context menu
self.edit_menu_factions = QtGui.QMenu()
self.renameFaction = self.edit_menu_factions.addAction('Rename')
self.renameFaction.triggered.connect(self.menu_action)
self.removeFaction = self.edit_menu_factions.addAction('Remove')
self.removeFaction.triggered.connect(self.menu_action)
self.edit_menu_factions.addSeparator()
self.copyFactionNodes = self.edit_menu_factions.addAction('Copy Nodes')
self.copyFactionNodes.triggered.connect(self.menu_action)
self.pasteFactionNodes = self.edit_menu_factions.addAction('Paste Nodes')
self.pasteFactionNodes.triggered.connect(self.menu_action)
self.edit_menu_factions.addSeparator()
self.removeAllNodes = self.edit_menu_factions.addAction('Remove All Nodes')
self.removeAllNodes.triggered.connect(self.menu_action)
# sub-menu
self.sub_menu_factions = QtGui.QMenu()
self.nice = self.sub_menu_factions.addAction('Nice')
self.nice.triggered.connect(self.menu_action)
self.sub_menu_factions.setTitle("Great")
self.edit_menu_factions.addMenu(self.sub_menu_factions)
我想通过并禁用所有操作,但主要 QMenu。
您可以使用 actions()
方法获取附加到菜单的操作列表。您可以遍历此列表并一一禁用它们。
for action in menu.actions():
action.setDisabled(True)
编辑:此函数将递归禁用菜单项,但它会跳过子菜单,以便用户可以悬停并查看它们:
def disableMenu(menu):
for action in menu.actions():
if action.menu():
disableMenu(action.menu())
else:
action.setDisabled(True)
您可以在特定菜单上调用此函数或menuBar()
禁用所有菜单;
disableMenu(mainWindow.menuBar())
pyside 中是否有一种方法可以将所有 QAction 项设置为在工具中的任何位置启用 = False?
例如说我在我的代码中写了这个...
# context menu
self.edit_menu_factions = QtGui.QMenu()
self.renameFaction = self.edit_menu_factions.addAction('Rename')
self.renameFaction.triggered.connect(self.menu_action)
self.removeFaction = self.edit_menu_factions.addAction('Remove')
self.removeFaction.triggered.connect(self.menu_action)
self.edit_menu_factions.addSeparator()
self.copyFactionNodes = self.edit_menu_factions.addAction('Copy Nodes')
self.copyFactionNodes.triggered.connect(self.menu_action)
self.pasteFactionNodes = self.edit_menu_factions.addAction('Paste Nodes')
self.pasteFactionNodes.triggered.connect(self.menu_action)
self.edit_menu_factions.addSeparator()
self.removeAllNodes = self.edit_menu_factions.addAction('Remove All Nodes')
self.removeAllNodes.triggered.connect(self.menu_action)
# sub-menu
self.sub_menu_factions = QtGui.QMenu()
self.nice = self.sub_menu_factions.addAction('Nice')
self.nice.triggered.connect(self.menu_action)
self.sub_menu_factions.setTitle("Great")
self.edit_menu_factions.addMenu(self.sub_menu_factions)
我想通过并禁用所有操作,但主要 QMenu。
您可以使用 actions()
方法获取附加到菜单的操作列表。您可以遍历此列表并一一禁用它们。
for action in menu.actions():
action.setDisabled(True)
编辑:此函数将递归禁用菜单项,但它会跳过子菜单,以便用户可以悬停并查看它们:
def disableMenu(menu):
for action in menu.actions():
if action.menu():
disableMenu(action.menu())
else:
action.setDisabled(True)
您可以在特定菜单上调用此函数或menuBar()
禁用所有菜单;
disableMenu(mainWindow.menuBar())