Создание надстройки Python в виде кнопки
Кнопка — это наиболее простой вид изменения функциональности, она может быть использована для выполнения бизнес-логики при нажатии.
Этот раздел поможет вам создать новую кнопку на новой панели инструментов, используя мастер надстроек Python. Прежде, чем начать этот процесс, убедитесь, что вы создали проект надстройки ArcMap и указали параметры проекта. Более подробная информация доступна в разделе Создание проекта надстройки. Хотя здесь демонстрируется процесс создания кнопки для ArcMap, таким же образом вы можете добавить кнопку в любое другое приложение ArcGIS for Desktop. В этом разделе будет рассмотрен процесс создания простой кнопки для приближения к выбранным объектам. После этого класс Python, созданный мастером надстроек, будет рассмотрен более подробно с целью исследовать свойства и методы, которые обеспечивают функциональность вашей кнопки.
Создание надстройки в виде кнопки состоит из следующих этапов:
- Создание панели инструментов или меню
После того, как вы ввели все необходимые настройки проекта, нажмите на закладку Содержимое надстройки (Add-In Contents) и определите функциональность, которую изменит ваша надстройка. Кнопка может находиться на панели инструментов или в меню. В этом примере будет создана новая панель инструментов, которая будет выступать в качестве контейнера для кнопки. Более подробная информация о создании собственной панели инструментов доступна в разделе Создание надстройки в виде панели инструментов.
- Создание кнопки
После того, как вы ввели настройки панели инструментов, вы можете создать новую кнопку. Нажмите правой кнопкой мыши на панели инструментов под названием "Toolbar" и выберите Новая кнопка (New Button).
Кнопка имеет ряд параметров, которые необходимо ввести. Ниже представлен список всех параметров с описанием каждого из них. Эти свойства сохраняются в файле config.xml вашего проекта.
Свойство Описание Название (обязательный)
Определяет название кнопки. Следующая иллюстрация показывает, как название используется в менеджере надстроек ArcGIS для определения доступных видов изменения функционала (тип надстройки обозначен в скобках):
Следующая иллюстрация показывает, как название используется в качестве текстовой метки, которая позволяет найти кнопку на панели инструментов.
Класс (обязательный)
Класс Python, который выполняется при нажатии на кнопку в настольном приложении. Вся бизнес-логика вашей кнопки находится в классе Python. При создании своего класса используйте способ наименования, принятый в Python, при котором каждое слово начинается с большой буквы (например, "ZoomToSelectedFeatures", а не "zoomtoselectedfeatures").
ID (обязательный)
Уникальное название, которое поможет идентифицировать кнопку. Вы можете создать более одной кнопки в проекте, и этот идентификатор позволит вам отличать кнопки друг от друга. Желательно заменить идентификатор по умолчанию на более понятное значение. Идентификатор не должен содержать пробелов. Вы можете использовать символ подчеркивания для того, чтобы соединять слова. Нельзя использовать ключевые слова Python. Список зарезервированных слов доступен в документации Python.
Всплывающая подсказка (дополнительный)
Краткое описание, которое появляется, когда курсор мыши оказывается над кнопкой в приложении.
Сообщение (дополнительный)
Подробное описание того, какие функции выполняет кнопка. Это сообщение появляется под всплывающей подсказкой (ToolTip), когда курсор мыши оказывается над кнопкой.
Изображение (дополнительный)
Здесь может быть изображение размером 16 х 16 пикселей, обозначающее вашу кнопку. Изображение должно быть в одном из популярных форматов (то есть .bmp, .jpg и так далее). Изображение будет скопировано в папку Images, созданную в проекте надстройки.
Последняя секция настроек кнопки — это заголовок и содержание справки. Эти свойства позволяют вам предоставить информацию, которая отобразится, когда пользователь запустит контекстно-зависимую справку. Контекстно-зависимая справка представляет собой всплывающие сообщения, которые остаются на экране, пока пользователь не нажмет на другой объект.
Секция контекстно-зависимой справки состоит из следующих параметров:
Свойство Описание Заголовок (дополнительный)
Описывает тематику раздела справки.
Содержание (дополнительный)
Содержание справки об инструменте.
Как только вы установили все параметры, нажмите на кнопку Сохранить (Save) в нижней части мастера. Все необходимые файлы и папки будут созданы в вашей рабочей папке.
- Редактирование скрипта Python
На этом этапе вы должны закончить вводить значения для параметров, которые определяют надстройку в виде кнопки. Следующим шагом является редактирование скрипта Python и обновление класса Python для того, чтобы он включал функциональность по приближению выбранных объектов. Если не будет выбрано никаких объектов, будет отображен весь экстент всех слоев. Для добавления функциональности к пользовательской кнопке выполните следующие шаги:
- Отредактируйте скрипт Python, находящийся в папке Install, расположенной в рабочей папке, которую вы создали при помощи мастера.
В скрипте будет находиться класс с названием, которое вы указали в параметре Class выше. Не изменяйте название этого класса, поскольку это название содержится в файле config.xml. Описание каждой функции и каждого свойства класса доступно в разделе Класс кнопки.
- Добавьте следующий код в функцию onClick(self).
Этот код добавляет функциональность, которая позволяет приближать выбранные объекты.
# Implementation of OnClick method of Button's class def onClick(self): # Get the current map document and the first data frame. mxd = arcpy.mapping.MapDocument('current') df = arcpy.mapping.ListDataFrames(mxd)[0] # Call the zoomToSelectedFeatures() method of the data frame class df.zoomToSelectedFeatures()
- Сохраните скрипт.
- Отредактируйте скрипт Python, находящийся в папке Install, расположенной в рабочей папке, которую вы создали при помощи мастера.
- Проверка работы кнопки
После того, как вы создали кнопку и добавили код в скрипт, важно создать файл надстройки и проверить его работу, прежде чем предоставлять его пользователям. Для этого выполните шаги, описанные в разделе Тестирование надстройки.
- Публикация надстройки
После того, как вы проверили работоспособность кнопки и удостоверились, что она работает, как ожидалось, вы можете опубликовать надстройку для использования конечными пользователями. Более подробная информация доступна в разделе Общий доступ к надстройками.