Úvod do Tkinter - Okna pro jazyk Python - Postavené na základech 'An
Introduction to Tkinter'
[ předchozí ]
[ další ] [ obsah ]
[ originál ]
Tkinter - Button
Button je udělátko Tkinteru používané k vytvoření různých
druhů tlačítek. Tlačítko může obsahovat text nebo obrázek a vy můžete
přidělit každému tlačítku funkci nebo metodu. Když je tlačítko
zmáčknuté, Python automaticky zavolá funkci nebo metodu.
Tlačítko je schopno zobrazit text pouze stejného druhu a velikosti,
ale text může být rozdělen do více řádků. Mimo jiné jeden ze znaků
může být podtržen k označení klávesové zkratky. Standardně se klávesa TAB
používá k přemístění se na tlačítko.
Kdy použít udělátko Button?
Udělátko Button je snadné používat a Python jí rozumí jako "Teď
udělej to!," kde
to je určeno
buď textem nebo obrázkem na tlačítku. Tlačítka jsou obvykle využívána v
nástrojových lištách, v oknech a k přijetí nebo zamítnutí dat v
dialogovém okně. Pro tlačítka vhodné k vložení dat se podívej na
udělátka
Checkbutton a
Radiobutton.
Pojetí
Tlačítka jsou velmi jednoduchá k použití. Všechno, co musíte
udělat, je určit náplň tlačítka (text, bitmapu nebo obrázek) a jakou
funkci nebo metodu zavolat, když je tlačítko zmáčknuté:
from Tkinter import *
master = Tk()
def callback():
print "Kliknul jsi!"
b = Button(master, text="OK", command=callback)
b.pack()
mainloop()
Tlačítko bez volání je zbytečné; je samozřejmé, že když takové
tlačítko zmáčknete, nic se nestane. Můžete si přát použít tlačítek v
rozvíjející aplikaci, v této situaci je správné tlačítko zablokovat:
# -*- coding: utf-8 -*-
from Tkinter import*
okno=Tk()
b = Button(okno, text=u"Zablokovaný")
b.pack(fill=BOTH, expand=1)
b.config(state=DISABLED)
okno.mainloop()
Když neurčíte velikost, velikost tlačítka se přizpůsobí na minimální
velikost úměrnou obsahu. Můžete použít padx a pady k
přidání místa mezi obsahem a okrajem tlačítka.
Můžete také použít parametry height a width k nastavení
velikosti. Když zobrazujete do tlačítka text, tyto parametry definují
velikost tlačítka v textových jednotkách. Když zobrazujete bitmapu
nebo obrázek parametry definují velikost v pixelech. Můžete určit
velikost v pixelech pro tlačítka s textem, ale musíte použít trochu
magie. Tady je jedna z možných cest:
# -*- coding: utf-8 -*-
from Tkinter import*
okno=Tk()
f = Frame(okno, height=32, width=32)
f.pack_propagate(0) # nesraž se
f.pack()
b = Button(f, text=u"Jistě!")
b.pack(fill=BOTH, expand=1)
okno.mainloop()
Tlačítka mohou obsahovat víceřádkový text (ale pouze jednoho druhu a
velikosti). Můžete použít znaky pro nový řádek, nebo parametr
wraplenght pro samo zalomení
textu. Když dáte tento parametr, použijte anchor, justify a možná i padx parametry, aby tlačítko vypadalo
podle vašeho přání. Příklad:
b = Button(master, text=u"dlouhýtext", anchor=W, justify=LEFT, padx=2)
Když chcete vytvořit tlačítko, tak aby vypadalo jako zmáčknuté,
použijte jednoduše změnu reliefu z RAISED na SUNKEN:
b.config(relief=SUNKEN)
V prvních verzích Tkinteru se parametr image vykresloval nad text. Když se nastavily oba parametry,
zobrazil se pouze obrázek. V posledních verzích můžete použít
parametr compound ke změně tohoto chování. Například k
zobrazení textu nad obrázek nastavte compound na
CENTER:
b = Button(master, text="Klikni!", image=pattern, compound=CENTER)
K zobrazení ikony spolu s textem nastavte tento parametr na
LEFT, RIGHT, TOP, nebo BOTTOM:
# vloží ikonu nalevo od textu
b = Button(compound=LEFT, image=icon, text="Akce")
# vloží ikonu nad text
b = Button(compound=TOP, image=icon, text="Konec")
Referenční příručka
-
Button(master=None, **options) (class) [#]
-
Příkazové tlačítko
-
master
-
Rodičovské okno.
-
**options
-
Parametry udělátka. Podívej se na metodu config pro
všechny možné parametry.
-
config(**options)
[#]
-
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 tlačítko aktivní. Standardní
nastavení závisí na systému.
-
activeforeground=
-
Jakou barvu písma použít, když je tlačítko aktivní. Standardní
nastavení závisí na systému. (activeForeground/Background)
-
anchor=
-
Kontroluje, kde v tlačítku 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í tlačítka. Standardně nastavení závisí na systému.
(background/Background)
-
bg=
-
Stejné jako background.
-
bitmap=
-
Zobrazí bitmapu do tlačítka. Jestliže je dán parametr image,
tento parametr je ignorován. (bitmap/Bitmap)
-
borderwidth=
-
Šířka okraje tlačítka. 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 tlačítko
zmáčknuto. Jestliže nedáte tento parametr, nestane se nic, když
uživatel zmáčkne tlačítko. (command/Command)
-
compound=
-
Kontroluje jak kombinovat text a obrázek v tlačítku.
Standardně, je li dán obrázek nebo bitmapa, 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 tlačítkem.
(cursor/Cursor)
-
disabledforeground=
-
Barva písma, když je tlačítko zablokované (DISABLED) .
Standardní nastavení závisí na systému.
(disabledForeground/DisabledForeground)
-
font=
-
Druh písma použitého na text v tlačítku.Tlačítko 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 tlačítka. Když tlačítko obsahuje text, výška je dána v
textových jednotkách. Když tlačítko obsahuje obrázek, výška je
dána v pixelech. (height/Height)
-
highlightbackground=
-
Jaká barva se použije na zvýraznění okraje, když tlačítko
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ž tlačítko 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 tlačítka. Když je tento parametr dán, je obrázek
vykreslen nad text a bitmapu, jestliže není dán parametr
compound. (image/Image)
-
justify=
-
Definuje jak seřadit víceřádkový text. Používejte LEFT, RIGHT nebo CENTER. Standardně je nastaven
CENTER.
(justify/Justify)
-
overrelief=
-
Alternativní relief, který se použije, jestliže je myš nad
tlačítkem. Jestliže nedáte tento parametr, bude vždy použita
hodnota reliefu. (overRelief/OverRelief)
-
padx=
-
Horizontální vycpávka mezi jeho obsahem a okrajem. (padX/Pad)
-
pady=
-
Vertikální vycpávka mezi obsahem tlačítka a jeho okrajem.
(padY/Pad)
-
relief=
-
Okrasa okraje. Obvykle je tlačítko RAISED, a když je zmáčknuto, změní
se relief na SUNKEN.
Další možnosti jsou GROOVE, RIDGE a FLAT. Standardní nastavení je
RAISED. (relief/Relief)
-
repeatdelay=
-
(repeatDelay/RepeatDelay)
-
repeatinterval=
-
(repeatInterval/RepeatInterval)
-
state=
-
Stav tlačítka: NORMAL, ACTIVE nebo
DISABLED. Standardně je nastaven NORMAL.
(state/State)
-
takefocus=
-
Indikuje, zda může uživatel použít klávesu Tab k posunutí na tlačítko.
Standardně je nastaven prázdný řetězec, který znamená, že
tlačítko přijímá akce, jenom jestliže má nějakou klávesovou
vazbu. (takeFocus/TakeFocus)
-
text=
-
Text zobrazovaný v tlačítku. Text může obsahovat nové řádky.
Když je dán parametr bitmapa nebo obrázek, text je ignorován
(jestliže nedáte parametr compound). (text/Text)
-
textvariable=
-
Připojí Tkinterovskou proměnnou (obvykle StringVar) k tlačítku. Jestliže se
proměnná změní, text se změní. (textVariable/Variable)
-
underline=
-
Který ze znaků z textu podtrhnout. Standardně je nastaveno na
-1, což znamená, že žádný znak nebude podtržen.
(underline/Underline)
-
width=
-
Šířka tlačítka. Když tlačítko obsahuje text, je šířka dána v
textových jednotkách. Když tlačítko obsahuje obrázek, šířka je
dána v pixelech. (width/Width)
-
wraplength=
-
Vymezuje, kdy je tlačítko přeměněno na víceřádkový text. Tento
parametr je dán v pixelech. Standardně je nastaveno na 0.
(wrapLength/WrapLength)
-
flash() [#]
-
Probleskující tlačítko. Tato metoda přepíná mezi normálním a
aktivním stavem tlačítka.
-
invoke() [#]
-
Zavolá funkci nebo metodu spojenou s tlačítkem