Плагины на языке Python

Примечание

В дистрибутив Аксиома.ГИС входит тестовый плагин, исходный код которого можно посмотреть в папке bin/python_plugins/pluginexample.

Требования к плагину

Плагин должен представлять из себя папку, содержащую как минимум два файла: metadata.json и __init__.py.

metadata.json

Это файл с метаданными в формате JSON.

Корневым элементом этого файла должен быть объект, который может иметь следующие поля:

Название Тип Описание
id Строка Уникальный идентификатор плагина. Для обеспечения уникальности рекомендуется использовать способ наименования аналогичный пространствам имен java, например, ru.mycompanyname.HelloWorldPlugin
displayName Строка Имя плагина, отображаемое пользователю
description Строка Описание предназначения плагина
defaultAutoload Логический Флаг, определяющий загружается ли плагин по умолчанию
hidden Логический Флаг, определяющий показывать ли плагин пользователю в настройках

Строковые параметры, предназначенные для отображения в интерфейсе, могут быть локализованы. Для этого нужно использовать JSON-объект, который содержит локализованные строки в полях, соответствующих названию локали. Например: {"ru" : "Русский текст", "en" : "English text", "en_GB" : "Fancy English text"}

Пример файла с метаданными:

{
        "id" : "ExamplePlugin",
        "displayName" : {"ru" : "Пример модуля"},
        "description" : {"ru" : "Модуль для демонстрации возможностей разработки на Python"},
        "defaultAutoload" : false
}

__init__.py

С точки зрения Python плагин является пакетом (package), и при его импорте интерпретатор выполняет код из файла __init__.py. Кроме того, плагин может содержать специальные методы:

  • init() - вызывается при загрузке плагина, если инициализировать плагин не удалось, метод должен вернуть False, иначе True.
  • createExtensions() - этот метод должен вернуть список расширений, которые будут загружены в приложение.

Расширения

Доступны следующие типы расширений:

  • RibbonExtension - позволяет создавать вкладки и группы на панели ленточного интерфейса в окне приложения Аксиомы.ГИС
  • ActionExtension - позволяет добавлять действия(QAction) в интерфейс
  • ToolControllerExtension - позволяет добавлять инструменты для работы с окнами
  • BasicToolExtension - упрощенный вариант ToolControllerExtension