Úvod do Tkinter - Okna pro jazyk Python - Postaveno na základech 'An
Introduction to Tkinter'
[ předchozí ] [ další ] [ obsah ] [
originál ]
Tkinter - OptionMenu
Udělátko OptionMenu vytváří
tlačítko, na které když kliknete, tak se vysune menu. Je to velmi
podobné combo boxu od windowsů.
Chcete-li získat aktuální hodnotu vyskakovací nabídky, musíte spojit
vyskakovací nabídku s tkinterovskou
proměnnou. V sekci Pojetí najdete pár příkladů jak na to.
Pojetí
# -*- coding: utf-8 -*-
from Tkinter import *
okno = Tk()
promenna = StringVar(okno)
promenna.set(u"jedna") # standardní hodnota
w = OptionMenu(okno, promenna, u"jedna", u"dva", u"tři")
w.pack()
mainloop()
K získání aktuální hodnoty vyskakovací nabídky použijte metodu
get na proměnnou nebo předaný parametr hodnota:
# -*- coding: utf-8 -*-
from Tkinter import *
def ok(hodnota):
u"Volaná funkce při změně hodnoty udělátka 'option'"
print u"hodnota je:", promenna.get(), hodnota
okno = Tk()
promenna = StringVar(okno) # tkinterovská proměnná
promenna.set(u"jedna") # počáteční hodnota
option = OptionMenu(okno, promenna, u"jedna", u"dva", u"tři", u"čtyři", command=ok)
option.pack()
mainloop()
Následujicí příklad popisuje jak vyrobit tlačítkové menu ze seznamu
parametrů:
# -*- coding: utf-8 -*-
from Tkinter import *
PARAMETRY = [
u"jedna",
u"dva",
u"tři"
]
okno = Tk()
promenna = StringVar(okno)
promenna.set(PARAMETRY[0])
w = OptionMenu(okno, promenna, *PARAMETRY)
w.pack()
mainloop()
Další příklad ukazuje, jak upravit udělátko podle vašich představ.
# -*- coding: utf-8 -*-
from Tkinter import *
def ok(hodnota):
promenna.set(hodnota) # tento řádek je zde kvůli dynamicky přidané položce "tři"
print u"hodnota je:", promenna.get(), hodnota
okno = Tk()
promenna = StringVar(okno)
promenna.set(u"jedna")
w = OptionMenu(okno, promenna,u"jedna", u"dva", u"...",command=ok)
w.pack()
w.config(font='Times 12',bg='red',fg='blue',relief='groove',pady=5,padx=5,bd=2,
activebackground='blue',activeforeground='red',width=15)
# dynamicky přidaná položka "tři"
w["menu"].insert(2, "command", label=u"tři", command=lambda : ok(u"tři"))
mainloop()
Referenční příručka
(tato není zatím kompletní)
-
(class) [#]
-
Vysunovací nabídka
-
master
-
Rodičovské okno.
-
**options
-
Parametry udělátka. Podívej se na metodu config pro všechny možné parametry.
-
[#]
-
Modifikuje jeden nebo více parametrů udělátka. Jestliže nejsou
parametry dány, tato metoda vrací obsah všech již daných hodnot
parametrů.
-
**options
-
Parametry udělátka
-
activebackground=
-
Jakou barvu pozadí použít, když je nad vysunovací nabídkou
kurzor. Standardní nastavení závisí na systému.
-
activeforeground=
-
Jakou barvu písma použít, když je nad vysunovací nabídkou.
Standardní nastavení závisí na systému.
(activeForeground/Background)
-
anchor=
-
Kontroluje, kde ve vysunovací nabídce se bude text(nebo
obrázek) nacházet. Vybírejte z: N, NE, E,
SE, S, SW, W, NW, nebo
CENTER. Standardně je nastaven CENTER.
(anchor/Anchor)
-
background=
-
Barva pozadí vysunovací nabídky. Standardně nastavení závisí na
systému. (background/Background)
-
bg=
-
Stejné jako background.
-
borderwidth=
-
Šířka okraje vysunovací nabídky. Standardní nastavení závisí na
systému, ale obvykle je to 1 nebo 2 pixely.
(borderWidth/BorderWidth)
-
bd=
-
Stejné jako borderwidth.
-
command=
-
Funkce nebo metoda, která je zavolána, když je nabídka
zmáčknuta. Jestliže nedáte tento parametr, nestane se nic, když
uživatel zmáčkne vysunovací nabídku. (command/Command)
-
compound=
-
Kontroluje jak kombinovat text a obrázek ve vysunovací nabídce.
Standardně, je li dán obrázek , je text ignorován.
Jestliže je tento parametr nastaven na CENTER, text se objeví nad
obrázkem. Jestliže je tento parametr nastaven na BOTTOM,
LEFT, RIGHT nebo TOP, obrázek je
koncipován mimo text (používej BOTTOM k posunutí obrázku pod
text atd.). Standardní nastavení je NONE. (compound/Compound)
-
cursor=
-
Změna kursoru, jestliže se nachází nad vysunovací nabídkou.
(cursor/Cursor)
-
disabledforeground=
-
Barva písma, když je vysunovací nabídka zablokovaná (DISABLED)
. Standardní nastavení závisí na systému.
(disabledForeground/DisabledForeground)
-
font=
-
Druh písma použitého na text ve vysunovací nabídce.Vysunovací
nabídka může obsahovat pouze jeden druh písma. Standardní
nastavení závisí na systému (font/Font)
-
foreground=
-
Barva pro barvu písma. Standardní nastavení závisí na systému.
(foreground/Foreground)
-
fg=
-
Stejné jako foreground.
-
height=
-
Výška vysunovací nabídky. Když vysunovací nabídka obsahuje
text, výška je dána v textových jednotkách. Když nabídka
obsahuje obrázek, výška je dána v pixelech.
(height/Height)
-
highlightbackground=
-
Jaká barva se použije na zvýraznění okraje, když vysunovací
nabídka nebude mít focus. Standardní nastavení záleží na
systému. (highlightBackground/HighlightBackground)
-
highlightcolor=
-
Jaká barva se použije na zvýraznění okraje, když vysunovací
nabídka bude mít focus. Standardní nastavení záleží na
systému. (highlightColor/HighlightColor)
-
highlightthickness=
-
Šířka zvýrazněného okraje. Standardní nastavení záleží na
systému (obvykle jeden nebo dva pixely).
(highlightThickness/HighlightThickness)
-
image=
-
Obrázek do vysunovací nabídky. Když je tento parametr dán, je
obrázek vykreslen nad text , jestliže není dán parametr
compound. (image/Image)
-
padx=
-
Horizontální vycpávka mezi jeho obsahem a okrajem. (padX/Pad)
-
pady=
-
Vertikální vycpávka mezi obsahem nabídky a jeho okrajem.
(padY/Pad)
-
relief=
-
Okrasa okraje. Možnosti jsou RAISED, SUNKEN, FLAT, GROOVE, RIDGE. (relief/Relief)
-
state=
-
Stav nabídky: NORMAL, ACTIVE nebo
DISABLED. Standardně je nastaven NORMAL.
(state/State)
-
underline=
-
Který ze znaků z textu podtrhnout. Standardně je nastaveno na
-1, což znamená, že žádný znak nebude podtržen.
(underline/Underline)
-
width=
-
Šířka nabídky. Když vysunovací nabídka obsahuje text, je šířka
dána v textových jednotkách. Když vysunovací nabídka obsahuje
obrázek, šířka je dána v pixelech. (width/Width)
-
Různé
-
-
w["menu"].insert(index, "command", label=text)
-
Dynamické přidávání položek do nabídky. Do udělátka w přidá na pozici index zadaný text.