BasicToolExtension

class axioma.gui.extension.BasicToolExtension

Класс расширений для плагинов, позволяющий добавлять инструменты напрямую, без помощи контроллера для работы с окнами в приложении.

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

BasicToolExtension(factory, widgetClass, actionid, category="", tab="", group="", icon=None, text=None)

Конструктор класса.

Параметры:
  • factory – Callable объект, который при вызове принимает аргумент parent типа QObject и возвращает объект класса инструмента, наследованный от Tool.
  • widgetClass – Класс виджетов, с которым будет работать инструмент. Например: axioma.gui.MapView, axioma.gui.ItemView, axioma.gui.ReportView
  • actionid (str) – Идентификатор инструмента в ленточном интерфейсе
  • category (str) – Идентификатор категории в ленточном интерфейсе
  • tab (str) – Идентификатор вкладки в ленточном интерфейсе
  • group (str) – Идентификатор группы в ленточном интерфейсе
  • icon (QIcon) – Иконка для QAction инструмента
  • text (str) – Текст для QAction инструмента

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

# Пример инструмента
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]