Устанавливаем иконку с панели инструментов на кнопку в пользовательской панели UI в Blender

Для того чтобы установить иконку на кнопки в кастомных пользовательских панелях UI в Blender, мы ищем текстовый идентификатор нужной иконки (обычно при помощи встроенного аддона Icon Viewer) и устанавливаем его значение в параметр icon, при привязке к кнопке нужного оператора. Однако иконки, используемые в панели инструментов отсутствуют в перечне стандартных иконок Blender.

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

Для получения идентификатора иконки нам нужно получить идентификатор инструмента с нужной иконкой, а затем воспользоваться классом ToolSelectPanelHelper для получения собственно идентификатора иконки.

Идентификатор нужного инструмента можно получить при помощи следующего скрипта.

Для примера возьмем инструмент аннотаций Annotate. Его идентификатор: “ops.gpencil.draw”.

Импортируем класс ToolSelectPanelHelper и при помощи метода _icon_value_from_icon_handle получим цифровой идентификатор иконки.

Обратите внимание, этот метод не документирован и является приватным, его корректная работа разработчиками не гарантируется!

Имея идентификатор иконки мы можем использовать его при оформлении кнопок в пользовательской панели UI.

Оформим класс тестовой панели с одной кнопкой.

Внутри функции draw(), которая отвечает за отображение UI, мы создаем одну кнопку. На эту кнопку мы привязываем вызов оператора добавления куба в сцену “mesh.primitive_cube_add”.

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

Так как иконки инструментов по размеру больше стандартных иконок, мы увеличили размер кнопок на нашей панели в два раза, установив масштаб scale_y = 2.

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

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