Tkinter


Menu Widget

Menu of your Life by Frits Ahlefeldt Většina lidí, konfrontována se slovem "menu", si okamžitě představí menu v restauraci. I když menu v restauraci a menu počítačového programu nemají na první pohled nic společného, uvidíme že mají. Menu v restauraci je nabídka všech jejích jídel a nápojů, zatímco v počítačové aplikaci představuje všechny její příkazy a funkce, které jsou uživateli nabízeny prostřednictvím grafického rozhraní.

Nabídky jsou v grafickém rozhraní prezentováný kombinací textů a symbolů. Vyběr myší (či prstem u dotykových obrazovek) jednoho ze symbolů nebo textů spustí nějakou akci. Takovou akcí či operací může být například otevření nebo uložení souboru či ukončení aplikace.

Kontextové menu je menu, ve kterém je nabídka upravena vzhledem k aktuálnímu kontextu otevřeného menu.

V této kapitole uvádíme rozvinovací (roletková) menu Tkinteru, což jsou vlastně seznamy v horní části okna, které se rozvinou, stiskneme-li některé z tlačítek jako je například "File", "Edit" nebo "Help".

Jednoduchý příklad

Následující skript vytvoří jednoduchou aplikaci s nabídkovými tlačítky.
from tkinter import *
from tkinter.filedialog 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()


Spuštěný skript vypadá takto:

Tkinter Menus