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

Tkinterovské proměnné (BooleanVar, DoubleVar, IntVar, StringVar)

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.

Kdy tkinterovskou proměnnou použít

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.

Pojetí

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

Metody

get/set

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

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

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

trace_vinfo() => seznam

DOPLNIT: přidat popis


Přeložil a upravil - Pavel Kosina - Copyright © 2006 TkinterCZ - GNU Free Documentation License 1.2