Úvod do Tkinter - Okna pro jazyk Python - Postavené na základech 'An Introduction to Tkinter'
Chcete-li měnit vzhled již vytvořeného udělátka, používejte raději parametry (options) než volání metod. Běžné parametry umožňují měnit text a barvu, dále velikost, volanou funkci, apod. Všechny základní udělátka mají implementováno stejné konfigurační rozhraní pro zacházení s parametry:
TridaUdelatka(rodič, parametr=hodnota, ...) => udělátko
(kde TridaUdelatka je jedna z tříd zmíněné dříve)
Vytvoří instanci této třídy udělátka jako potomka daného rodiče při použití daných parametrů. Všechny parametry mají standardní hodnoty, takže v nejjednodušším případě musíte určit pouze rodiče. Můžete dokonce vypustit i toho, pokud skutečně chcete; Tkinter pak použije jako rodiče naposledy vytvořené hlavní okno. Parametr name se může nastavit jen při vytvoření udělátka.
cget("parametr") => hodnota
Vrací současnou hodnotu parametru. Jak název parametru, tak vrácená hodnota, jsou řetězce. Chcete-li získat parametr name, použijte str(widget).
config(parametr=hodnota, ...)
configure(parametr=hodnota, ...)
Nastaví jeden nebo více parametrů (zadané jako pojmenované argumenty).
Poznámka: některé názvy parametrů kolidují s názvy klíčových slov v Pythonu. Potřebujete-li použít tyto jména jako pojmenované argumenty, přidejte jednoduše na konec slova podtržítko(class_, from_, ...). Opakuji: parametr name měnit nemůžete, ten se dá nastavit jen jednou a to při vytvoření udělátka.
keys() => seznam
Vrací seznam všech parametrů, které se dají u příslušného udělátka nastavit. Samozřejmě kromě parametru name.
Kvůli pohodlí udělátka mají implementování přístup k parametrům přes lokální slovník. Metoda __setitem__ je spojena s configure, zatímco __getitem__ je nastavena na cget. Výsledkem tohoto triku je pohodlnější přístup k parametrům, a to jak pro čtení tak pro zápis:
hodnota = widget["parametr"] widget["parametr"] = hodnota
Poznámka: každé takovéto přiřazení způsobí volání příslušné funkce v Tk. Chcete-li tedy měnit vícero parametrů je vždy lepší udělat to v jednom volání pomocí config nebo configure.
Pojmenované argumenty byly představeny poprvé v Python 1.3. Předtím byly parametry předávány konstruktorům udělátek (stejně jako config metodám) pomocí slovníků. Zdrojový kód tedy vypadal tehdy takto:
self.tlacitko = Button(frame, {"text": "KONEC", "fg": "red", "command": frame.quit}) self.tlacitko.pack({"side": LEFT})
Syntaxe pojmenovaných argumentů je samozřejmě o mnoho elegantnější a způsobuje méně chybovosti. Nicméně z důvodů zpětné kompatibility Tkinter podporuje stále ještě i tuto starou syntaxi. Neměla by být však již v nových aplikacích používána., i když se to může někdy hodit. Například když potřebujete vytvořit specielní udělátko, které potřebuje předávat přijaté parametry své rodičovské třídě, mohlo by vás napadnout následující řešení:
def __init__(self, master, **kw): Canvas.__init__(self, master, kw) # kw je slovnik
Fredrik Lundh doporučuje v originále této dokumentace používat místo tohoto řešení funkci apply. Ta se však později objevila na seznamu zavrženíhodných v dalších (Python 3.0) verzích Pythona. Takže jen pro úplnost možnost řešení s apply:
def __init__(self, master, **kw): apply(Canvas.__init__, (self, master), kw)
Přeložil a upravil - Pavel Kosina - Copyright © 2006 TkinterCZ - GNU Free Documentation License 1.2