Hello,
I’m trying to add a custom menu to Unreal through python. This works fine until I want to add something to a submenu of my custom menu. This is my example code:
@unreal.uclass()
class testWidget(unreal.ToolMenuEntryScript):
'''
Test
'''
@unreal.ufunction(override=True)
def execute(self, context):
print('Test!')
# Find main menu
menu = unreal.ToolMenus.get().find_menu("MainFrame.MainMenu")
# Add Submenu1 to main menu, add 2 sections and another sub menu called SubMenu2
submenu1 = menu.add_sub_menu(owner=menu.menu_name, section_name='', name='SubMenu1', label='SubMenu1')
submenu1.add_section('MyFirstSection', label='First section')
submenu1.add_section('MySecondSection', label='Second section')
submenu2 = submenu1.add_sub_menu(owner=submenu1.menu_name, section_name='MySecondSection', name='SubMenu2', label='SubMenu2')
submenu2.add_section('MyThirdSection', label='Third section')
first_menu_item = testWidget()
# Create first menu item
first_menu_data = unreal.ToolMenuEntryScriptData( menu = submenu1.menu_name,
section = 'MyFirstSection',
name = 'SomeName',
label = 'FirstEntry',
tool_tip = '',
icon = '',
insert_position = unreal.ToolMenuInsert("", unreal.ToolMenuInsertType.DEFAULT))
first_menu_item.data = first_menu_data
submenu1.add_menu_entry_object(first_menu_item)
# Create second menu item
second_menu_item = testWidget()
second_menu_data = unreal.ToolMenuEntryScriptData( menu = submenu2.menu_name,
section = 'MyThirdSection',
name = 'SomeOtherName',
label = 'SecondEntry',
tool_tip = '',
icon = '',
insert_position = unreal.ToolMenuInsert("", unreal.ToolMenuInsertType.DEFAULT))
second_menu_item.data = second_menu_data
submenu2.add_menu_entry_object(second_menu_item)
unreal.ToolMenus.get().refresh_all_widgets()
If I add the second menu item to the first sub menu it does show up. Am I doing something wrong or is this just a limit by doing it through Python?