Кастомные иконки в EnumProperty в Blender

Мы можем использовать кастомные иконки, т.е. иконки, загружаемые из внешних файлов, а не зашитые в библиотеках Blender, например, для придания индивидуализации кнопкам вызова операторов в панелях UI. Однако не только кнопки могут потребовать установки специальных значков. При помощи Blender Python API мы можем придать индивидуальность пунктам выпадающих списков или переключателей, которые создаются на основе типа EnumProperty.

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

Не забудьте зарегистрировать его в Blender Python API, чтобы наша пользовательская панель отобразилась в рабочей области 3D вьюпорта, в N-панели.

Внутри функции draw() мы в дальнейшем определим отображение элементов нашего UI.

Но сначала создадим список для кастомных иконок и загрузим в него несколько иконок из внешних файлов.

Список наших иконок “icons” создается при помощи модуля previews из пакета bpy.utils.

Вызов метода new() нужен для инициализации списка.

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

Теперь, для того чтобы создать переключатель и выпадающий список, при помощи EnumProperty определим объект test_enum, содержащий три элемента в кортеже items.

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

Нам осталось лишь прописать показ объекта test_enum в функции draw() нашей пользовательской панели.

Чтобы он имел вид переключателя, нужно параметр expand установить в значение True.

Предварительное создание колонки col нужно чтобы пункты переключателя располагались вертикально, друг под другом.

И, после разделителя, тот же самый объект в виде выпадающего списка:

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

0 0 голоса
Article Rating
Подписаться
Уведомить о
guest

0 Комментарий
Межтекстовые Отзывы
Посмотреть все комментарии