BasicToolExtension ==================== .. currentmodule:: axioma.gui.extension .. class:: BasicToolExtension Класс расширений для плагинов, позволяющий добавлять инструменты напрямую, без помощи контроллера для работы с окнами в приложении. Унаследован от: * :class:`~axioma.gui.extension.ToolControllerExtension` .. method:: BasicToolExtension(factory, widgetClass, actionid, category="", tab="", group="", icon=None, text=None ) Конструктор класса. :param factory: Callable объект, который при вызове принимает аргумент parent типа :class:`~PyQt5.QtCore.QObject` и возвращает объект класса инструмента, наследованный от :class:`~axioma.gui.Tool`. :param widgetClass: Класс виджетов, с которым будет работать инструмент. Например: axioma.gui.MapView, axioma.gui.ItemView, axioma.gui.ReportView :param actionid: Идентификатор инструмента в ленточном интерфейсе :type actionid: :class:`str` :param category: Идентификатор категории в ленточном интерфейсе :type category: :class:`str` :param tab: Идентификатор вкладки в ленточном интерфейсе :type tab: :class:`str` :param group: Идентификатор группы в ленточном интерфейсе :type group: :class:`str` :param icon: Иконка для :class:`~PyQt5.QtWidgets.QAction` инструмента :type icon: :class:`~PyQt5.QtGui.QIcon` :param text: Текст для :class:`~PyQt5.QtWidgets.QAction` инструмента :type text: :class:`str` Пример использования: .. code-block:: python # Пример инструмента class ExampleTool(Tool): def __init__(self, widget): super().__init__(widget) def mousePressEvent(self, event): QMessageBox.information(axioma.app.mainWindow, "Заголовок", "Сообщение") return Tool.PassEvent def createMyExtensions(): # Получаем ссылку на существующий интерфейс приложения ribbonExt = axioma.gui.extension.RibbonExtension() ribbonExt.addTab("ExamplePluginTab", "Пример модуля") ribbonExt.addGroup("ExamplePluginTab","ExampleGroupId", "Команды модуля") ribbonExt.addCategory("ExamplePluginCategory", "Пример модуля") ribbonExt.addAction("ExampleToolId", "ExamplePluginTab", "ExampleGroupId") # Расширение, добавляющее инструмент класса ExampleTool, который работает с виджетами типа axioma.gui.MapView toolExt = axioma.gui.extension.BasicToolExtension(ExampleTool, axioma.gui.MapView, "ExampleToolId", icon=QIcon("://icons/32px/run.png")) return [ribbonExt, toolExt]