Wahrscheinlich haben Sie darauf schon gewartet? ;-) Nun kommt es endlich! Für Menüs gibt es - wer hätte das gedacht - eine spezielle Widget-Klasse mit dem Namen menu.
Wesentliche Methoden sind:
from Tkinter import *
def callback():
print 'called the callback'
root=Tk()
#Erstellen des Menüs
menuobj=Menu(root) #Menükonstruktor
root.config(menu=menuobj)
filemenu=Menu(menuobj)
menuobj.add_cascade(label='File', menu=filemenu)
filemenu.add_command(label='New', command=callback)
filemenu.add_command(label='Open', command=callback)
filemenu.add_separator()
filemenu.add_command(label='Exit', command=callback)
helpmenu=Menu(menuobj)
menuobj.add_cascade(label, menu=helpmenu)
helpmenu.add_command(label='About', command=callback)
mainloop()
:
menuobj ist eine Menüinstanz, die zu Beginn des Programms durch den Konstruktor Menu(root) erzeugt wird, wobei der Name des Widgets übergeben wird, in dem das Menü entstehen soll. Damit werden auf die Menüinstanz bestimmte Eigenschaften übertragen, zum Beispiel die Frage, ob sie ein Popup-Menü sein soll oder nicht. Dann wird durch die config-Methode von root das Menü an das Rootfenster gebunden, d.h. es wird eine Menüzeile in root erstellt. Das Menü muss nicht gepackt werden!
Schliesslich wird eine zweite Menüinstanz erzeugt, für die das eben erzeugte menuobj das Container-Widget darstellt. Dann werden die entsprechenden Einträge vorgenommen und auf ähnliche Art und Weise ein Hilfemenü erstellt.