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

Společné metody všech udělátek

Následující metody jsou společné všem udělátkům včetně okna root/toplevel. Okna root i toplevel poskytují ještě další metody.

Pojetí

Nastavení

w.config(parametr=hodnota)
hodnota = w.cget("parametr") k = w.keys()

Zpracování událostí

mainloop()
w.mainloop()
w.quit()
w.wait_variable(var)
w.wait_visibility(window)
w.wait_window(window)
w.update()
w.update_idletasks()

Volání funkcí událostmi

w.bind(udalost, volanafunkce)
w.unbind(udalost)
w.bind_class(udalost, volanafunkce)
w.bindtags()
w.bindtags(tags)

Ovladače časovačů a další ne-událostní volání funkcí

id = w.after(cas, volanafunkce)
id = w.after_idle(volanafunkce)
w.after_cancel(id)

Správa oken

w.lift()
w.lower()

Informace o oknech

w.winfo_width(), w.winfo_height()
w.winfo_reqwidth(), w.winfo_reqheight()
w.winfo_id()

Databáze parametrů

w.option_add(vzor, hodnota)
w.option_get(jmeno, trida)

Referenční příručka

Widget (třída) [#]

Implementační třída udělátek. Tuto třídu se používají všechna udělátka jako mixin (?).

after(delay_ms, callback=None, *args) [#]

Zaregistruje volanou funkci, která se zavolá po uplynutí daného času. Program se ale na daném místě nezastaví a pokračuje ve zpracování příkazů normálně dále.

Tato metoda zaregistruje volanou funkci tak, že bude zavolána za daný počet milisekund. Tkinter zaručuje, že metoda nebude zavolána dříve než je daná doba; pokud bude systém zaneprázdněn je možné, že to bude později.

Volaná funkce je volána jen jednou u každého volání této funkce. Nelze tedy nastavit parametrem např. počet zavolání této funkce. Chcete-li zajistit opakované volání, musíte uvnitř volané funkce provést opětnou registraci sebe sama:

class App:

    def __init__(self, master):

        self.master = master
        self.opakovacka() # zacatek opakovani

    def opakovacka(self):
        ... něco udělej ...
        self.master.after(100, self.opakovacka)
Můžete zadat jeden nebo více argumentů, které budou předány volané funkci. Metoda vrací identifikátor časovače, který se dá použít pro jeho zrušení časovače pomocí metody after_cancel.

Volanou funkci můžete také vynechat. V tom případě metoda prostě počká zadaný počet milisekund, podobně jako time.sleep(delay_ms*0.001)).

delay_ms
Prodleva v milisekundách.
callback
Volaná funkce. Může být jakýkoliv volatelný objekt.
*args
Dobrovolné parametry, které budou předány volané funkci.
Vrací:
Identifikátor časovače.
after_cancel(id) [#]

Zruší časovač.

id
Identifikátor časovače.
after_idle(callback, *args) [#]

Zaregistruje volanou funkci, která se zavolá, až nebude systém zaneprázdněn. Funkce bude zavolána, když nebudou v hlavní smyčce žádné jiné události ke zpracování.Volaná funkce je volána jen jednou u každého volání této funkce.

callback
Volaná funkce. Může být jakýkoliv volatelný objekt.
*args
Nepovinné parametry, které jsou předány volané funkci.
Vrací:
Identifikátor časovače.
bbox(column=None, row=None, col2=None, row2=None) [#]

Metoda bbox. Vrací ohraničující obdélník, v pixelech (x,y, šířka, výška), který zahrnuje dané řádky a sloupce.

column
row
col2
row2
bell(displayof=0) [#]

Generuje zvuk, jehož délka i tvar je závislý na systému. Typicky krátké pípnutí.

displayof
bind(sequence=None, func=None, add=None) [#]

Přidá k tomuto udělátko vazbu na událost. U stejných událostí nové vazby obvykle nahrazují dosavadní. Předáním třetího parametru "+" je nová událost přidána k dosavadním.

bind_all(sequence=None, func=None, add=None) [#]

Přidá na aplikační úrovni vazbu na událost. U stejných událostí nové vazby obvykle nahrazují dosavadní. Předáním třetího parametru "+" je nová událost přidána k dosavadním.

bind_class(className, sequence=None, func=None, add=None) [#]

Přidá k dané třídě udělátek vazbu na událost. U stejných událostí nové vazby obvykle nahrazují dosavadní. Předáním třetího parametru "+" je nová událost přidána k dosavadním.

bindtags(tagList=None) [#]

Nastavuje nebo vrací u patřičného udělátka pořadí vazeb.

Pokud je zavolána bez parametru, metoda vrací n-tici obsahují pořadí vazeb, použitých pro toto udělátko. Standardně tato n-tice obsahuje jméno udělátka (str(self)), třídu udělátka (např. Button), jméno hlavního okna a nakonec speciální jméno, které odkazuje na aplikační úroveň.

cget(key) [#]

Vrací aktuální hodnotu parametru.

Metoda vrací vždy řetězec; i v tom případě, když jste při konfiguraci udělátku předávali jako hodnotu parametru např. číslo). Použijte int a float, kde je to nutné.

clipboard_append(string, **options) [#]

Přidá text do schránky.

string
Text, který se má přidat.
**options
clipboard_clear(**options) [#]

Vyčistí schránku.

**options
colormodel(value=None) [#]

Metoda colormode.

value
columnconfigure(index, cnf={}, **kw) [#]

Metoda columnconfigure.

index
cnf
**kw
config(cnf=None, **kw) [#]

Mění jeden nebo více parametrů udělátek.

Následující forma změny parametrů se dá používat také: w[parametr] = hodnota

Pokud je zavolána bez parametrů, vrací slovník obsahující současné nastavení všech parametrů daného udělátka. Pro každý slovníkový klíč je hodnota buď 
  • pětice (parametr, klíč v databázi parametrů, třída v databázi parametrů, defaultní hodnota, současná hodnota)
  •  nebo dvojice (alias parametr, parametr). Případ dvojice se používá pro aliasy jako bg (background) a bd (borderwidth).

Hodnoty polí nejsou korektně formátovány u některých typů parametrů. Pro řešení problému s nimi nahlédněte do metody keys a experimentujte.

configure(cnf=None, **kw) [#]

Stejné jako config.

deletecommand(name) [#]

Metoda deletecommand.

name
destroy() [#]

Zničí udělátko. Udělátko je odstraněno z obrazovky a všechny zdroje, spojené s udělátkem, jsou uvolněny.

event_add(virtual, *sequences) [#]

Metoda event_add.

virtual
*sequences
event_delete(virtual, *sequences) [#]

Metoda event_delete.

virtual
*sequences
event_generate(sequence, **kw) [#]

Metoda event_generate.

sequence
**kw
event_info(virtual=None) [#]

Metoda event_info.

virtual
focus() [#]

Metoda focus.

focus_displayof() [#]

Metoda focus_displayof.

focus_force() [#]

Metoda focus_force.

focus_get() [#]

Metoda focus_get.

focus_lastfor() [#]

Metoda focus_lastfor.

focus_set() [#]

Přesouvá klávesnicový focus na toto udělátko. Zvýrazněno to bude rámečkem kolem widgetu, pokud nestanovíte jinak a znamená to, že všechny klávesnicové události budou nasměrovány do tohoto udělátka.

getboolean(s) [#]

(Vnitřní) konvertuje Tk řetězec na hodnotu True/False.

getvar(name='PY_VAR') [#]

Metoda getvar.

name
grab_current() [#]

Metoda grab_current.

grab_release() [#]

Uvolňuje událost grab.

grab_set() [#]

Přesměruje všechny události této aplikace na toto udělátko. Pokud vytvoříte podokno Toplevel, standardně se stále můžete přepnout do okna root. Zavoláte-li tuto metodu na podokno, nebude to již možné, dokud podokno nezavřete nebo neuvolníte přesměrování událostí (grab_release).

grab_set_global() [#]

Přesměruje události celého okna na toto udělátko. 

Toto by se mělo využívat jen ve velmi speciálních případech, protože dochází k blokaci všech ostatních aplikací na stejném okně. To pravděpodobně zahrnuje vše vývojové prostředí....

grab_status() [#]

Metoda grab_status.

image_names() [#]

Metoda image_names.

image_types() [#]

Metoda image_types.

keys() [#]

Vrací n-tici obsahující parametry dostupné pro toto udělátko. Můžete použít cget chcete-li dostat odpovídající hodnotu pro každý parametr.

Všimněte si, že tyto n-tice mohou obsahovat aliasy parametrů (jako bd, bg a fg). Toho se můžete zbavit, použijete-li místo toho metodu config. Ta zase má tu nevýhodu, že pro některé typy parametrů (jako například fonty) nevrací platnou hodnotu. Takže nejlepší je obě dvě metody nakombinovat:

for item in w.config():
    if len(item) == 5:
        option = item[0]
        value = w.cget(option)
        print option, value

lift(aboveThis=None) [#]

Posune udělátko na vrchol okenního zásobníku. Pokud je udělátko potomek okna, je posunut nad okno toplevel. Pokud je to toplevel okno (root nebo Toplevel), je posunuto nad všechna ostatní okna na displeji. Pokud je zadán parametr, je udělátko (okno) posunuto hned nad dané udělátko (okno).

lower(belowThis=None) [#]

Posune okno naspod okenního zásobníku. Stejné jako lift, ale posouvá udělátko dospod zásobníku (nebo ho posune hned pod belowThis).

mainloop(n=0) [#]

VStupuje do hlavní tkinterovské smyčky událostí. Smyčku můžete opustit metodou quit, okno aplikace zůstane však viditelné. Je tedy často lépe, opouštět smyčku zároveň se zničením okna pomocí metody destroy.

nametowidget(name) [#]

Vrací objekt udělátka z jeho zadaného jména.

name
Jméno udělátka.
Vrací:
Odpovídající objekt udělátka, pokud existuje.
Způsobuje KeyError:
pokud udělátko není nalezeno.
option_add(pattern, value, priority=None) [#]

Metoda option_add.

pattern
value
priority
option_clear() [#]

Metoda option_clear.

option_get(name, className) [#]

Metoda option_get.

name
className
option_readfile(fileName, priority=None) [#]

Metoda option_readfile.

fileName
priority
propagate(flag=['_noarg_']) [#]

Metoda propagate.

flag
quit() [#]

Metoda quit.

register(func, subst=None, needcleanup=1) [#]

Zaregistruje pythonovskou volanou funkci do Tcl. Vrací jména odpovídající vzniklé Tcl procedury. Když bude tato procedura zavolána z Tcl programu, zavolá se odpovídající pythonovská funkce s argumenty předané Tcl proceduře. Hodnoty vrácené v pyfunkce budou převedeny na řetězce a předány programu Tcl.

rowconfigure(index, cnf={}, **kw) [#]

Metoda rowconfigure.

index
cnf
**kw
selection_clear(**kw) [#]

Metoda selection_clear.

**kw
selection_get(**kw) [#]

Metoda selection_get.

**kw
selection_handle(command, **kw) [#]

Metoda selection_handle.

command
**kw
selection_own(**kw) [#]

Metoda selection_own.

**kw
selection_own_get(**kw) [#]

Metoda selection_own_get.

**kw
send(interp, cmd, *args) [#]

Metoda send.

interp
cmd
*args
setvar(name='PY_VAR', value='1') [#]

Metoda setvar.

name
value
size() [#]

Metoda size.

slaves() [#]

Metoda slaves.

tk_bisque() [#]

Metoda tk_bisque.

tk_focusFollowsMouse() [#]

Metoda tk_focusFollowsMouse.

tk_focusNext() [#]

Vrací následující udělátko za aktuálním, které by mělo získat focus při použití klávesy Tab

tk_focusPrev() [#]

Vrací předchozí udělátko před aktuálním, které by mělo získat focus při použití klávesy Tab

tk_menuBar(*args) [#]

Metoda tk_menuBar.

*args
tk_setPalette(*args, **kw) [#]

Metoda tk_setPalette.

*args
**kw
tk_strictMotif(boolean=None) [#]

Metoda tk_strictMotif.

boolean
tkraise(aboveThis=None) [#]

Metoda tkraise.

aboveThis
unbind(sequence, funcid=None) [#]

Odstraní u tohoto udělátka jakékoliv vazby pro danou událost.

unbind_all(sequence) [#]

Metoda unbind_all.

sequence
unbind_class(className, sequence) [#]

Metoda unbind_class.

className
sequence
update() [#]

Zpracuje všechny čekající události, zavolá všechny volané funkce, dokončí všechny zobrazování správci rozmístění, překreslí udělátka, pokud je to nutné a zavolá všechny zbylé čekající úkoly. 

Tato metoda by se měla používat s rozmyslem, protože když je zavolána z nevhodného místa, jako např.  z volané funkce, může vést k velmi nepříjemným důsledkům. Pokud jste na pochybách, použijte update_idletasks.

update_idletasks() [#]

Zavolá všechny čekající úkoly bez zpracování jakýchkoliv dalších událostí. Používá při aktualizaci správců rozmístění, které překreslí udělátka, pokud je to nutné, přičemž se nezavolá žádný callback.

wait_variable(name) [#]

Počká, až se tkinterovská proměnná změní. Tato metoda vstoupí do lokální smyčky událostí, takže ostatní části aplikace budou nadále funkční. Lokální smyčka se ukončí, když dojde ke změně proměnné (počítá se i nastavení proměnné na aktuální hodnotu).

wait_visibility(window=None) [#]

Počká, až bude předané udělátko viditelné. Obvykle se tohoto využívá při zobrazování toplevel okna. Podobně jako wait_variable, tato metoda vstoupí do lokální smyčky událostí, takže ostatní části aplikace budou funkční.

wait_window(window=None) [#]

Počká, až předané udělátko bude zničeno. Obvykle se to používá pro čekání, až dané okno zmizí z obrazovky. Podobně jako  wait_variable a wait_visibility,  tato metoda vstoupí do lokální smyčky událostí, takže ostatní části aplikace budou funkční.

waitvar(name='PY_VAR') [#]

Metoda waitvar.

name
winfo_atom(name, displayof=0) [#]

Mapuje daný řetězec na jedinečné číslo. Pokaždé, když zavoláte tuto metodu se stejným řetězcem, dostanete stejné celé číslo.

winfo_atomname(id, displayof=0) [#]

Vrací řetězec, který odpovídá danému celému číslu (získanému pomocí  winfo_atom). Pokud číslo není používáno, Tkinter vyvolá TclError výjimku. Tkinter předdefinovává sadu čísel (typicky 1-80 nebo tak nějak). Zajímá-li vás to víc, můžete tuto metodu použít na zkoumání.

winfo_cells() [#]

Vrací počet "buněk" v barevné mapě. Typicky se jedná o hodnotu mezi 2 a 256 (dokonce i pro displeje true color, z jakýchsi záhadných důvodů).

winfo_children() [#]

Vrací seznam instancí udělátek všech potomků tohoto udělátka. Instance jsou vráceny v pořadí zásobníku odspodu nahoru. 

winfo_class() [#]

Vrací jméno třídy tohoto udělátka. Pokud je udělátko Tkinter base widget, dostanete stejnou informaci také pomocí widget.__class__.__name__.

winfo_colormapfull() [#]

Vrací pravdu, pokud je barevná mapa tohoto udělátka plná.

winfo_containing(rootX, rootY, displayof=0) [#]

Vrací udělátko na dané pozici nebo None, pokud tam nic není nebo to není  udělátko od této aplikace. Souřadnice jsou dány relativně k levému hornímu rohu obrazovky.

rootX
rootY
displayof
winfo_depth() [#]

Vrací bitovou hloubku tohoto udělátka. Obvykle se jedná o  hodnotu 8 pro 256 barevný displej, 15 nebo 16 pro hicolor displej a 24 nebo 32 pro truecolor displej.

winfo_exists() [#]

Vrací true, pokud existuje Tk okno, které odpovídá tomuto udělátku. Pokud neuděláte něco moc divného, měli byste vždy dostávat true.

winfo_fpixels(distance) [#]

Převádí danou vzdálenost (v jakékoliv formě, kterou Tkinter přijímá) na odpovídající počet pixelů.

distance
Vzdálenost na obrazovce.
Vrací:
Odpovídající počet pixelů, jako desetinné číslo.
winfo_geometry() [#]

Vrací řetězec, popisující geometrii udělátka. Řetězec má následující formát:

"%dx%d%+d%+d" % (šířka, výška, xoffset, yoffset)

kde všechny souřadnice jsou uvedeny v pixelech.
winfo_height() [#]

Vrací výšku udělátka v pixelech. Pokud ale není spravováno správcem rozmístění, tato metoda vrací 1. Možná bude v tomto případě stačit zavolat nejdříve update_idletaskst. Můžete ale také použít winfo_reqheight (to je, přirozená výška udělátka, jak ji chápe udělátko samo podle svého obsahu).

Vrací:
Současnou výšku udělátka v pixelech.
winfo_id() [#]

Vrací identifikátor okna, který je závislý na systému. U Unixu se jedná o X window identifier. U Windows se jedná o HWND.

Vrací:
Identifikátor okna.
winfo_interps(displayof=0) [#]

Metoda winfo_interps.

displayof
winfo_ismapped() [#]

Kontrolu, jestli bylo udělátko vytvořeno. Tato metoda kontroluje, jestli Tkinter okno odpovídající udělátku v základním systému oken (X windows, Windows HWND, apod).

Vrací:
Pravdu, pokud okno bylo vytvořeno.
winfo_manager() [#]

Vrací jméno správce rozmístění, který se stará o zobrazení tohoto udělátka (typicky je to grid, pack, place, canvas nebo text).

winfo_name() [#]

Vrací Tk jméno udělátka. Je stejné jako poslední část plného jména udělátka, které dostáváte z  str(widget).

Vrací:
Jméno udělátka.
winfo_parent() [#]

Vrací plné jméno rodičovského udělátka. Tato metoda vrací prázdný řetězec, pokud udělátko nemá rodiče (root, toplevel).

Chcete-li však získat spíše instanci rodiče, použijte atribut master. Nebo, pokud chcete, použijte  nametowidget, kde namapujete plné jméno udělátka na instanci udělátka.

Vrací:
Jméno udělátka jako řetězec.
winfo_pathname(id, displayof=0) [#]

Vrací plné jméno okna pro danou identitu (viz winfo_id). Pokud okno neexistuje nebo nepatří do této aplikace, Tkinter vyvolá výjimku TclError.

Chcete-li převést plné jméno na instanci udělátka, používejte nametowidget.

id
Identifikátor okna.
displayof
winfo_pixels(distance) [#]

Převádí danou vzdálenost, v jakékoliv formě, kterou Tkinter umí, na odpovídající počet pixelů.

distance
Vzdálenost na obrazovce.
Vrací:
Odpovídající počet pixelů ve formě celého čísla.
winfo_pointerx() [#]

Metoda winfo_pointerx.

winfo_pointerxy() [#]

Metoda winfo_pointerxy.

winfo_pointery() [#]

Metoda winfo_pointery.

winfo_reqheight() [#]

Vrací přirozenou výšku udělátka. Přirozená výška je minimální výška potřebná k plnému zobrazení obsahu, včetně výplní, okrajů, apod. Tuto velikost počítá samo udělátko na základě daných parametrů. Skutečná velikost udělátka je ale určena správcem rozmístění na základě této hodnoty, velikosti rodiče udělátka a parametrů, které správce dostal.

winfo_reqwidth() [#]

Vrací přirozenou šířku udělátka. Přirozená šířka je minimální šířka potřebná k plnému zobrazení obsahu, včetně výplní, okrajů, apod. Tuto velikost počítá samo udělátko na základě daných parametrů. Skutečná velikost udělátka je ale určena správcem rozmístění na základě této hodnoty, velikosti rodiče udělátka a parametrů, které správce dostal..

winfo_rgb(color) [#]

Převádí řetězec barvy, v jakékoliv formě, kterou Tkinter umí, na n-tici RGB.

color
Řetězec barvy. Může se jednat o jméno barvy, řetězec obsahující identifikaci barvy  ("#rrggbb") nebo jinou syntaxi podporovanou Tkinterem.
Vrací:
Trojici obsahující červenou, zelenou a modrou složku. Trojice obsahuje 16-bitové hodnoty (0..65535).
winfo_rootx() [#]

Vrací pixelové souřadnice levé hrany udělátka vzhledem k levé hraně obrazovky.

Vrací:
Souřadnice root.
winfo_rooty() [#]

Vrací pixelové souřadnice horní hrany udělátka vzhledem k horní hraně obrazovky.

Vrací:
Souřadnice root.
winfo_screen() [#]

Vrací Jméno obrazovky v X window pro aktuální okno. Jméno obrazovky je řetězec formátu ":display.screen", kde display a screen jsou desetinná čísla.

Na Windows a Macintosh toto vrací vždy ":0.0".

Vrací:
Jméno obrazovky.
winfo_screencells() [#]

Vrací počet barevných buněk v defaultní barevné mapě pro obrazovku tohoto udělátka.

Vrací:
Počet barevných buněk.
winfo_screendepth() [#]

Vrací defaultní bitovou hloubku pro obrazovku tohoto udělátka.

Vrací:
Bitovou hloubku.
winfo_screenheight() [#]

Vrací výšku obrazovky tohoto udělátka.

Vrací:
Výška v pixelech.
winfo_screenmmheight() [#]

Vrací výšku obrazovky tohoto udělátka v milimetrech. Nemusí správně fungovat na všech platformách.

Vrací:
Výšku v milimetrech.
winfo_screenmmwidth() [#]

Vrací šířku obrazovky tohoto udělátka v milimetrech. Nemusí správně fungovat na všech platformách.

Vrací:
Šířka v milimetrech.
winfo_screenvisual() [#]

Vrací "vizuální" typ udělátka. Obvykle je to "pseudocolor" (pror 256-barevné displeje) nebo "truecolor" (pro 16- nebo 24-bitové displeje).

Vrací:
Řetězec obsahující vizuální typ. Jedna z hodnot: "pseudocolor", "truecolor", "directcolor", "staticcolor", "grayscale" nebo "staticgray".
winfo_screenwidth() [#]

Vrací výšku obrazovky tohoto udělátka.

Vrací:
Šířka v pixelech.
winfo_server() [#]

Metoda winfo_server.

winfo_toplevel() [#]

Vrací okno toplevel nebo root pro toto udělátko, jako instanci.

Vrací:
Toplevel rodič. Buď je to instance Tk nebo Toplevel.
winfo_viewable() [#]

Metoda winfo_viewable.

winfo_visual() [#]

Stejné jako winfo_screenvisual.

winfo_visualid() [#]

Metoda winfo_visualid.

winfo_visualsavailable(includeids=0) [#]

Metoda winfo_visualsavailable.

includeids
winfo_vrootheight() [#]

Metoda winfo_vrootheight.

winfo_vrootwidth() [#]

Metoda winfo_vrootwidth.

winfo_vrootx() [#]

Metoda winfo_vrootx.

winfo_vrooty() [#]

Metoda winfo_vrooty.

winfo_width() [#]

Vrací šířku tohoto udělátka v pixelech. Pokud ale není spravováno správcem rozmístění, tato metoda vrací 1. Možná bude v tomto případě stačit zavolat nejdříve update_idletaskst. Můžete ale také použít winfo_reqwidth(to je, přirozená šířka udělátka, jak ji chápe udělátko samo podle svého obsahu).

Vrací:
Aktuální šířku udělátka v pixelech.
winfo_x() [#]

Vrací pixelové souřadnice levého hrany udělátka vzhledem k rodičovské levé hraně.

winfo_y() [#]

Vrací pixelové souřadnice horní hrany udělátka vzhledem k rodičovské horní hraně.


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