Как получить все возможные значения EnumProperty для передачи в функцию

При передаче в параметры функции значения типа EnumProperty, точно так же, как и при непосредственном присваивании, всегда нужно точно указывать значение из заданного списка, иначе Blender выдаст ошибку.

Например, если при указании иконки для кнопки в параметр icon функции layout.operator задать неверное значение ее идентификатора,

Blender выдаст ошибку:

TypeError: UILayout.operator(): error with keyword argument “icon” – enum “ICON” not found in (‘NONE’, ‘QUESTION’, ‘ERROR’,…)

Все возможные значения идентификаторов, которые можно передавать в нужном параметре функции, можно получить из структуры RNA.

Напишем функцию, которая будет принимать на входе три параметра – тип объекта из которого вызывается функция, имя функции и имя передаваемого в нее параметра, и возвращать список возможных для этого параметра значений.

Теперь мы можем получить все значения для параметра icon функции layout.operator:

и передавать в параметр icon всегда верное значение.


*.blend файл для моих подписчиков на Patreon

0 0 голоса
Article Rating
Подписаться
Уведомить о
guest
0 Комментарий
Межтекстовые Отзывы
Посмотреть все комментарии