def add_popup_menu_option(self, label, function_action=None, key=None, icon=None, submenu=None): """ Add an option to the Control popup menu @param label: label of the option. @param function_action: function called when the option is selected. @param key: shortcut key @param icon: icon """ self.__create_popup_menu() menu = submenu if submenu else self._popup_menu if label == "-": return menu.addSeparator() else: action = QAction(label, self.form) if icon is not None: action.setIconVisibleInMenu(True) action.setIcon(icon if isinstance(icon, QIcon) else QIcon(icon) ) if key != None: action.setShortcut(QKeySequence(key)) if function_action: action.triggered.connect(function_action) menu.addAction(action) return action
def add_popup_menu_option(self, label, function_action=None, key=None, icon=None, menu=None): """ Add an option to the Control popup menu. :param str label: Label of the option :param function function_action: The function that should be executed when the menu is selected. :param str key: Short key. :param QIcon or str icon: Icon. :param QMenu submenu: Parent submenu to which the option should be added. If no value is set, then the option will be added to the main popup menu. .. code:: python control.add_popup_menu_option('option 0', function_action=self._do_something) submenu1 = control.add_popup_submenu('menu 1') submenu2 = control.add_popup_submenu('menu 2', submenu=submenu1) control.add_popup_menu_option('option 1', function_action=self._do_something, key='Control+Q', submenu=submenu2) """ self.__create_popup_menu() menu = menu if menu else self._popup_menu if label == "-": return menu.addSeparator() else: action = QAction(label, self.form) if icon is not None: action.setIconVisibleInMenu(True) action.setIcon(icon if isinstance(icon, QIcon) else QIcon(icon) ) if key != None: action.setShortcut(QKeySequence(key)) if function_action: action.triggered.connect(function_action) menu.addAction(action) return action
def __initMainMenu(self, options, keys={}): menubar = self.menuBar() for menuIndex, m in enumerate(options): for key, menus in m.items(): menu = menubar.addMenu(key) for subMenuIndex, m1 in enumerate(menus): if isinstance(m1, str) and m1 == "-": menu.addSeparator() else: for text, func in m1.items(): if text != 'icon': action = QAction(text, self) if 'icon' in m1.keys(): action.setIconVisibleInMenu(True) action.setIcon(QIcon(m1['icon'])) if func: action.triggered.connect(func) menu.addAction(action) options[menuIndex][key][subMenuIndex][text] = action break return options
def add_popup_menu_option(self, label='', function_action=None, key=None, item=None, icon=None, submenu=None): """ Add an option to the Control popup menu @param label: label of the option. @param function_action: function called when the option is selected. @param key: shortcut key @param key: shortcut key """ action = super(ControlTree, self).add_popup_menu_option(label, function_action, key, submenu) if item is not None: if label == "-": self._items[id(item)].append(label) else: action = QAction(label, self.form) if icon is not None: action.setIconVisibleInMenu(True) action.setIcon(QIcon(icon)) if key is not None: action.setShortcut(QKeySequence(key)) if function_action: action.triggered.connect(function_action) # Associate action to the item. if id(item) not in self._items.keys(): self._items.update({id(item): []}) self._items[id(item)].append(action) ########################## return action return action