# Plugin - Плагин ГИС Аксиома

class axipy.Plugin

  Вспомогательный класс для создания плагинов.

  Свойства:

  `plugin_dir` | Возвращает путь к папке плагина.
  `settings` | Настройки плагина.

  Методы:

  `create_action`(title, on_click[, icon, ...]) | Создает кнопку с действием.
  `create_tool`(title, on_click[, icon, ...]) | Создает кнопку с инструментом.
  `get_plugin_data_dir`() | Возвращает каталог, в котором находятся изменяемые данные плагина.
  `load`() | Переопределите этот метод для задания логики загрузки плагина.
  `tr`(text) | Ищет перевод строки в загруженных файлах перевода.
  `unload`() | Переопределите этот метод для очистки ресурсов при выгрузке плагина.

  create_action(title: str, on_click: Callable[[], Any], icon: Union[str, QIcon] = '', enable_on: Optional[Observer] = None, tooltip: Optional[str] = None, doc_file: Optional[str] = None) → ActionButton

    Создает кнопку с действием.

    Параметры:

      - title – Текст.

      - on_click – Действие на нажатие.

      - icon – Иконка. Может быть путем к файлу или адресом ресурса.

      - enable_on – Идентификатор наблюдателя для определения доступности кнопки.

      - tooltip – Строка с дополнительной короткой информацией по данному действию.

      - doc_file – Относительная ссылка на файл документации. Расположение рассматривается по отношению к каталогу documentation.

    Результат:

      Кнопка с действием.

    Примечание

    То же, что и `ActionButton`, но дополнительно делает идентификатор кнопки уникальным для данного плагина.

  create_tool(title: str, on_click: Union[Callable[[], MapTool], MapTool], icon: Union[str, QIcon] = '', enable_on: Optional[Union[str, Observer]] = None, tooltip: Optional[str] = None, doc_file: Optional[str] = None) → ToolButton

    Создает кнопку с инструментом.

    Параметры:

      - title – Текст.

      - on_click – Класс инструмента или же функция, возвращающая экземпляр инструмента.

      - icon – Иконка. Может быть путем к файлу или адресом ресурса.

      - enable_on – Идентификатор наблюдателя для определения доступности кнопки.

      - tooltip – Строка с дополнительной короткой информацией по данному действию.

      - doc_file – Относительная ссылка на файл документации. Расположение рассматривается по отношению к каталогу documentation.

    Результат:

      Кнопка с инструментом.

    Примечание

    То же, что и `ToolButton`, но дополнительно делает идентификатор кнопки уникальным для данного плагина.

    Пример:

        def create_tool() -> MapTool:
            return MapTool()

        class ExampleTool(Plugin):
            def __init__(self) -> None:
                tool = self.create_tool(
                    title="Пример инструмента",
                    icon="://icons/share/32px/run3.png",
                    on_click=create_tool
                )

  get_plugin_data_dir() → Path

    Возвращает каталог, в котором находятся изменяемые данные плагина.

  load()

    Переопределите этот метод для задания логики загрузки плагина.

  property plugin_dir: Path

    Возвращает путь к папке плагина.

  property settings: QSettings

    Настройки плагина.

    Позволяет сохранять и загружать параметры.

    См.также

    Подробнее в документации на класс `PySide2.QtCore.QSettings`.

  tr(text: str) → str

    Ищет перевод строки в загруженных файлах перевода.

    Параметры:

      text – Строка для перевода.

    Результат:

      Перевод стоки, если строка найдена. Иначе — сама переданная строка.

    Пример:

        button_name = self.tr("My button")

  unload()

    Переопределите этот метод для очистки ресурсов при выгрузке плагина.