Úvod do Tkinter - Okna pro jazyk Python - Postavené na základech 'An Introduction to Tkinter'
Používáte-li Tk přes Tcl, můžete požádat systém, aby vám dal vědět, když se změní nějaká proměnná. Tkinter této výhody využívá (a nazývá ji sledováním (tracing)) k provádění daných funkcí při změnách příslušných proměnných.
Neexistuje cesta, jako sledovat Pythonovské proměnné, nicméně Tkinter vám umožňuje vytvořit tzv. obálku proměnné, která se dá použít všude, kde Tk dokáže použít sledovanou proměnnou Tcl.
tkProměnné se dají použít u většiny vstupních udělátek a mít tak možnost sledovat změny zadávaných hodnot. Checkbutton a Radiobutton dokonce použití těchto proměnných vyžadují.
tkProměnné se mohou také použít k ověřování obsahu a na změny textu v parametru text u udělátek.
Používejte následující konstrukci, chcete-li vytvořit tkProměnnou:
promenna = StringVar()
Na nastavení hodnoty proměnné používejte metodu set:
promenna = StringVar() promenna.set("ahoj")
Konstruktor může mít argument, který je však namístě pouze, když vám běží Tkinter s několika Tk instancemi. Což by nemělo, pokud si nejste jistí tím, co děláte.
Metoda trace se používá na spojení proměnné s funkcí. Funkce je volána vždy, když dojde ke změně proměnné::
def volanafunkce(*args): print "promenna se zmenila!" promenna = StringVar() promenna.trace("w", volanafunkce) promenna.set("ahoj")
DOPLNIT: pojetí u Entry/Label/OptionMenu
get() => hodnota
set(řetězec)
Metoda get vrací aktuální hodnotu proměnné. U proměnné BooleanVar je vrácená hodnota 0 jako False a 1 jako True. U proměnné DoubleVar je vrácená hodnota pythonovské reálné číslo. U proměnné IntVar je to celé číslo. U StringVar je to buď ASCII řetězec nebo Unicode řetězec, v závislosti na obsahu.
Metoda set aktualizuje proměnnou a vyrozumívá všechny sledovatele (volá funkce). Jako parametr jí dávejte patřičnou hodnotu nebo řetězec, podle typu tkproměnné.
trace(mod, volanafunkce) => řetězec
trace_variable(mod, volanafunkce)
Přidává sledovatele proměnné. Vrací vnitřní jméno sledovatele, které můžete použít pro odregistrování sledovatele - viz níže.
Parametr mod je jeden z "r" (zavolá sledovatele, když proměnnou někdo přečte), "w" (zavolá sledovatele, když proměnnou někdo změní), or "u" (undefine; zavolá sledovatele, když je proměnná smazána).
DOPLNIT: popsat parametr mod a jak by měla volanafunkce vypadat, když je volána.
trace_vdelete(mod, jméno sledovatele)
Odstraní sledovatele. Jméno sledovatele je řetězec, vrácený funkcí trace_variable, když byl sledovatel poprvé registrován.
trace_vinfo() => seznam
DOPLNIT: přidat popis
Přeložil a upravil - Pavel Kosina - Copyright © 2006 TkinterCZ - GNU Free Documentation License 1.2