submenu add_command(label='spam'command=parent quitunderline= submenu add_command(label='eggs'command=notdoneunderline= edit add_cascade(label='stuff'menu=submenuunderline= return menubar if __name__ ='__main__'root tk(or toplevel or frame root title('menu_frm'set window-mgr info makemenu(rootassociate menu bar msg label(roottext='frame menu basics'add something below msg pack(expand=yesfill=bothmsg config(relief=sunkenwidth= height= bg='beige'root mainloop(againlet' isolate the linkage logic here to avoid getting distracted by other details for the file menu casehere is what this boils down tomenubar frame(parentfbutton menubutton(menubartext='file'file menu(fbuttonfbutton config(menu=filemake frame for the menubar attach menubutton to frame attach menu to menubutton crosslink button to menu there is an extra menubutton widget in this schemebut it' not much more complex than making top-level window menus figures - and - show this script in action on windows figure - menu_frmframe and menubutton menu bar the menu widgets in this script provide default set of event bindings that automatically pop up menus when selected with mouse this doesn' look or behave exactly like the top-level window menu scheme shown earlierbut it is closecan be configured in any way that frames can ( with colors and borders)and will look similar on every platform (though this may or may not be feature in all contextsthe biggest advantage of frame-based menu barsthoughis that they can also be attached as nested components in larger displays example - and its resulting interface (figure - show how--both menu bars are completely functional in the same single window menus