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

Ahoj (aneb první program), Tkinter

Konec povídání, podívejme se radši na nějaký kód. Skoro každý pořádný tutoriál začíná programem "hello world" - "ahoj světe". Začneme tak i my. Podívejme se na malou ukázku:

Náš první Tkinter program (Soubor: ahoj1.py)
# -*- coding: utf-8 -*-

from Tkinter import *

hlavni_okno = Tk()

w = Label(hlavni_okno, text=u"Ahoj světe!")
w.pack()

hlavni_okno.mainloop()

Detaily

První nastavíme kódování, abychom mohli správně zobrazovat české znaky.

# -*- coding: utf-8 -*-

Začínáme od nejdůležitějšího modulu Tkinter. Ten obsahuje všechny třídy, funkce a jiné věci potřebné k práci s nástroji Tk. V mnoha případech můžete jednoduše naimportovat Tkinter do vašeho programu:

from Tkinter import *

K inicializaci Tkinter, musíme vytvořit hlavní (root) udělátko Tk. To je obyčejné okno s titulkem a dalšími dekorativními prvky, které vytvoří Váš manažer oken (Windows, KDE, Gnome atd.). Vždy byste měli vytvořit jedno hlavní okno a toto okno musí být vytvořeno dříve než ostatní prvky (udělátka).

hlavni_okno = Tk()

Tak a teď si vytvoříme a udělátku Label (Štítek). Udělátko Label může zobrazit buď text nebo ikonku či jiný obrázek. Zde ho používáme pro zobrazení textu.

w = Label(hlavni_okno, text=u"Ahoj světe!")

Zatím je udělátko pouze v paměti programu. Chceme-li ho zobrazit, musíme ho tzv. zapakovat - voláme metodu pack.

w.pack()
Nakonec vstoupíme do smyčky událostí Tkinter:

hlavni_okno.mainloop()

Program zůstává ve smyčce událostí, dokud nezavřeme program. Smyčka událostí neobsluhuje jen události od uživatele (stisknutí tlačítka myši nebo tlačítka na klávesnici) či práci s okenním systémem (jako překreslení obrazovky nebo konfigurací systémových zpráv), ale může také obsluhovat operace vyvolané samotným Tkinterem. Tyto operace spravuje správce rozmístnění - zde metoda pack - a také zobrazuje nově vytvořené věci.


Přeložil a upravil - Vítězslav Titl, Pavel Kosina - Copyright © 2006-2007 TkinterCZ - GNU Free Documentation License 1.2