Плагины на языке 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