Nested submenus

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?

image

2 Likes

Hi Yceco,

I’m running into the same issue, have you find any solution for it so far ? Thanks !

Sadly, no :face_with_diagonal_mouth:

Hi, I am also running into a similar issue. Any update?

second_menu_item.register_menu_entry()

Don’t forget to register your menu Items.