next up previous contents index 6264666870
Next: 9.3 Werkzeugleisten (Toolbars) Up: 9. Anwendungsfenster Previous: 9.1 Base Windows   Contents   Index

9.2 Menüs

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:

Ein kleines Beispiel:

#File: menu1.py 

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()

Das Ergebnis sehen Sie in dem folgenden Bild [*]:

Figure: Einfaches Menü
\includegraphics{/home/heikos/lyx/informatik/tkinter/menu.eps}

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.


next up previous contents index 6264666870
Next: 9.3 Werkzeugleisten (Toolbars) Up: 9. Anwendungsfenster Previous: 9.1 Base Windows   Contents   Index
Heiko Schroeder 2003-03-23