К сожалению, доступа к меню Quick Favorites через Python API в Blender разработчики пока не предусмотрели. Однако, возможность перенести все меню целиком на пользовательскую панель есть. Мы можем просто отрисовать контент Quick Favorites на layout пользовательской панели.
Для начала добавим несколько операторов в Quick Favorites, если вы не сделали этого раньше.
Чтобы добавить вызов какого-либо оператора в Quick Favorites проще всего кликнуть правой кнопкой мышки на нужной кнопке в интерфейсе Blender или на нужном пункте меню и выбрать пункт “Add to Quick Favorites”. Теперь при нажатии клавиши “q” во всплывающем меню появится новый пункт с вызовом этого оператора.
Теперь определим класс пользовательской панели.
1 2 3 4 5 6 7 8 9 |
class TEST_PT_panel(bpy.types.Panel): bl_idname = 'TEST_PT_panel' bl_label = 'TEST' bl_space_type = 'VIEW_3D' bl_region_type = 'UI' bl_category = 'TEST' def draw(self, context): # UI |
Внутри функции draw будет происходить отрисовка интерфейса нашей панели.
Поместим сюда вывод UI со всплывающей панели Quick Favorites, вызвав функцию menu_contents(), в параметре которой передадим идентификатор этого меню “SCREEN_MT_user_menu”.
Наша функция draw будет выглядеть следующим образом:
1 2 |
def draw(self, context): self.layout.menu_contents('SCREEN_MT_user_menu') |
Зарегистрируем класс нашей панели в Blender Python API.
1 |
bpy.utils.register_class(TEST_PT_panel) |
Теперь мы можем выполнить код и убедиться, что все операции из меню Quick Favorites отображаются кнопками на нашей пользовательской панели.