Пример #1
0
	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
Пример #2
0
    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
Пример #3
0
 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
Пример #4
0
    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