Menüs


Einführung

Menu of your Life by Frits Ahlefeldt Bei dem Wort "Menu" oder in deutscher Schreibweise "Menü" denken die meisten wohl zuerst an eine Speisekarte eines Restaurants. Auch wenn eine Speisekarte und ein Menü eines Computerprogrammes auf den ersten Blick nichts gemeinsam haben, so erkennt man sehr schnell, dass es doch eine große Gemeinsamkeit gibt. Die Speisekarte beinhaltet alle Speisen und Getränke, die in einem Restaurant bestellt werden können. Ebenso bietet das Menu einer Applikation alle Funktionen, die dem Benutzer dieser Applikation zur Verfügung gestellt werden.

Die verschiedenen Auswahlmöglichkeiten, die einem Benutzer durch ein Menü geboten werden, können auf verschiedene Arten angesprochen werden: so zum Beispiel durch Tippen eines bestimmten Zeichens oder Zeichenkombination auf der Tastatur, Anklicken von Mausbuttons oder über direktes Antippen der Elemente auf einem Bildschirm mit den Fingern

Die Menüs einer GUI sind überlicherweise in einer Kombination von Text und Symbolen dargestellt um die verschiedenen Auswahlmöglichkeiten darzustellen. Wählt man eine Möglichkeit mit Maus oder durch Fingern auf einem Touchscreen aus, so wird die entsprechende Aktion gestartet. Eines solche Aktion kann beispielsweise das Öffnen oder Speichern einer Datei oder das Verlassen einer Anwendung sein.

Ein Kontextmenu (context menu) ist ein Menü, in dem die Auswahlmöglichkeiten in Abhängigkeit vom aktuellen Kontext, in dem sich der Benutzer befindet, angepasst werden.

In diesem Kapitel unseres Python-Tkinter-Tutorials führen wir die Pull-down-Menüs von Tkinter ein. So erscheint z.B. bei den meisten gebräuchlichen Anwendungen ein Pull-down-Menü, wenn man ganz oben im Fenster auf "Datei" (im Englischen "File") klickt, in dem man wählen kann, ob man eine Datei speichern, unter neuem Namen speichern und Vieles mehr.

Ein einfaches Beispiel

Das folgende Python-Skript erzeugt eine einfaches Anwendungsfenster mit Menüs:
from Tkinter import *
from tkFileDialog   import askopenfilename

def NewFile():
    print "New File!"
def OpenFile():
    name = askopenfilename()
    print name
def About():
    print "This is a simple example of a menu"
    
root = Tk()
menu = Menu(root)
root.config(menu=menu)
filemenu = Menu(menu)
menu.add_cascade(label="File", menu=filemenu)
filemenu.add_command(label="New", command=NewFile)
filemenu.add_command(label="Open...", command=OpenFile)
filemenu.add_separator()
filemenu.add_command(label="Exit", command=root.quit)

helpmenu = Menu(menu)
menu.add_cascade(label="Help", menu=helpmenu)
helpmenu.add_command(label="About...", command=About)

mainloop()


Startet man obigen Code, sieht es wie folgt aus:

Tkinter Menüs