Úvod do Tkinter - Okna pro jazyk Python - Postavené na základech 'An Introduction to Tkinter'

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

sorry

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