Menus

Class Menu implements all kinds of menus: menu bars of top-level windows, submenus, and pop-up menus. To use a Menu instance m as the menu bar for a top-level window w, set w’s configuration option menu=m. To use m as a submenu of a Menu instance x, call x.add_cascade with menu=m. To use m as a pop-up menu, call m.post.

Besides configuration options covered in Common Widget Options, a Menu instance m supports option postcommand=callable. Tkinter calls callable without arguments each time it is about to display m (because of a call to m.post or because of user actions). Use this option to update a dynamic menu just in time when necessary.

By default, a Tkinter menu shows a tear-off entry (a dashed line before other entries), which lets the user get a copy of the menu in a separate Toplevel window. Since such tear-offs are not part of user interface standards on popular platforms, you may want to disable tear-off functionality by using configuration option tearoff=0 for the menu.

Menu-Specific Methods

Besides methods common to all widgets, an instance m of class Menu supplies several menu-specific methods.

add, add_cascade, add_checkbutton, add_command, add_radiobutton, add_separator

m.add(entry_kind, **entry_options)

Adds after m’s existing entries a new entry whose kind is the string entry_kind, one of 'cascade', 'checkbutton', 'command', 'radiobutton', or 'separator'. Menu Entries covers entry kinds and options.

Methods whose names start with add_ work like method add, but accept ...

Get Python in a Nutshell, 2nd Edition now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.