NativeActionExtension

class axioma.gui.NativeActionExtension

Класс-расширение для объектов класса QAction. Обеспечивает регистрацию в системе пользовательского действия в под управлением расширения. При этом нет необходимости в изменении состояния в зависимости от окружения среды. Другими словами если необходимо создать кнопку на панели инструментов, которая доступна всегда, необходимо использовать данный класс.

Унаследован от:

От него наследуются:

  • NativeActionControllerExtension

  • ActionExtension

    NativeActionExtension(actionId, ribbonInfo = None, parent=None)

    Конструктор

    Параметры:
    • actionid (str) – Идентификатор действия в ленточном интерфейсе
    • ribbonInfo (RibbonActionInfo) – Положение в ленточном интерфейсе
    • parent (QObject или None) – Родительский объект
    actionid()

    Идентификатор действия в ленточном интерфейсе

    Тип результата:str
    categoryId()

    дентификатор категории в ленточном интерфейсе

    Тип результата:str
    createAction(parent=None)

    Создает соответствующий объект типа QAction

    Параметры:parent (QObject или None) – Родительский объект
    Тип результата:QAction
    customizeAction(action)

    Переопределяемый метод. Используется при создании объекта QAction в методе createAction() если есть необходимость переопределить пареметры создаваемого объекта. Пример см. ниже.

    Параметры:action (QAction) – Создаваемое действие, параметры которого нужно переопределить
    ribbonGroupId()

    Идентификатор группы в ленточном интерфейсе

    Тип результата:str
    ribbonInfo()

    Положение в ленточном интерфейсе

    Тип результата:RibbonActionInfo
    ribbonTabId()

    Идентификатор вкладки в ленточном интерфейсе

    Тип результата:str

Пример использования:

import axioma.gui
import PyQt5.QtGui
'''
NativeActionExtension используется для регистрации пользовательского действия в системе. При этом нет необходимости в изменении состояния в зависимости от окружения среды.
Другими словами если необходимо создать кнопку на панели инструментов, которая доступна всегда, необходимо использовать данный подход.
'''

# Объявляем свой класс расширения
class ExampleActionExtension(axioma.gui.NativeActionExtension):

# Необходимо переопределить метод customizeAction, задав параметры для создаваемого объекта QAction
    def customizeAction(self, action):
        action.setText("Пример действия")
        action.setIcon(PyQt5.QtGui.QIcon(":/icons/32px/run.png"))
        action.triggered.connect(self.slot);

# Действие по нажатию
    def slot(self):
        print('Нажали кнопку')

# Регистрация в системе на новой закладке
ribbonExt = axioma.gui.extension.RibbonExtension()
ribbonExt.addTab("ExamplePluginTab", "Пример модуля")
actionExt = ExampleActionExtension("ActionExtensionId", axioma.gui.RibbonActionInfo())
ribbonExt.addAction("ActionExtensionId", "ExamplePluginTab", "") # Добавление в интерфейс
axioma.app.gui.prependExtensions([ribbonExt, actionExt]) # Регистрация