axioma.gui.
NativeActionExtension
¶Класс-расширение для объектов класса QAction
. Обеспечивает регистрацию в системе пользовательского действия в под управлением расширения.
При этом нет необходимости в изменении состояния в зависимости от окружения среды.
Другими словами если необходимо создать кнопку на панели инструментов, которая доступна всегда, необходимо использовать данный класс.
Унаследован от:
От него наследуются:
NativeActionExtension
(actionId, ribbonInfo = None, parent=None)¶Конструктор
Параметры:
- actionid (
str
) – Идентификатор действия в ленточном интерфейсе- ribbonInfo (
RibbonActionInfo
) – Положение в ленточном интерфейсе- parent (
QObject
или None) – Родительский объект
createAction
(parent=None)¶Создает соответствующий объект типа
QAction
Параметры: parent ( QObject
или None) – Родительский объектТип результата: QAction
customizeAction
(action)¶Переопределяемый метод. Используется при создании объекта
QAction
в методеcreateAction()
если есть необходимость переопределить пареметры создаваемого объекта. Пример см. ниже.
Параметры: action ( QAction
) – Создаваемое действие, параметры которого нужно переопределить
ribbonInfo
()¶Положение в ленточном интерфейсе
Тип результата: RibbonActionInfo
Пример использования:
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]) # Регистрация