Grafika v Pythonu – knihovna TKinter 1: Plátno a objekty

TKinter je standardní knihovna pro tvorbu grafického uživatelského rozhraní (GUI) v jazyce Python. Je součástí standardní instalace Pythonu, což znamená, že není potřeba žádná dodatečná instalace, pokud již máte nainstalovaný Python. Stačí knihovnu naimportovat příkazem:

from tkinter import *

Pak můžeme používat libovolné objekty knihovny bez prefixu tkinter.

S knihovnou TKinter můžete vytvářet různé typy grafických aplikací, jako jsou okenní aplikace, dialogová okna, formuláře, menu a další. Jedná se o jednoduchou a přitom dostatečně výkonnou knihovnu, vhodnou zejména pro začátečníky v tvorbě GUI aplikací. Knihovna TKinter je dobře dokumentovaná a má rozsáhlou komunitu uživatelů, je tedy snadné najít podporu a nápovědu při vývoji aplikací.

Knihovna TKinter poskytuje různé widgety (tj. grafické prvky) a layouty, které umožňují vytvářet různorodé uživatelské rozhraní podle potřeb aplikace.

Widget Canvas

V tomto prvním seznámení si představíme widget Canvas, tj. plátno, na které se dá kreslit a widgety pro popisky a tlačítka. Velice jednoduchý program může vypadat třeba takto:

from tkinter import *

# vytvoření grafického okna
hlavni_okno = Tk()

# popisek hlavního okna a jeho umístění
popisek = Label(hlavni_okno, text=u"GRAFIKA V PYTHONU")
popisek.pack(side=TOP)

# tlačítka hlavního okna a jejich umístění
tlacitko1 = Button(hlavni_okno, text="KONEC", fg="red", command=hlavni_okno.destroy)
tlacitko1.pack(side=BOTTOM)

# plátno, na které je možné kreslit
platno = Canvas(hlavni_okno, width=400, height=400)
platno.pack()

# objekty, které vkládáme na plátno
cara1 = platno.create_line(0, 400, 400, 0, fill = "red")
oval1 = platno.create_oval(10, 10, 100, 150, fill="blue")
text1 = platno.create_text(50, 200, text="Ahoj světe!")
obd1 = platno.create_rectangle(100,100,120,140,fill="yellow")
obl1 = platno.create_arc(300,50,380,180,fill="cyan", style=PIESLICE, start=45) 
trojuhelnik = platno.create_polygon(200, 200, 220, 280, 350, 330, fill = "#FF00DD", outline="")

# spuštění grafického okna
hlavni_okno.mainloop()

Tento program vytvoří grafické okno s popiskem, plátnem a na něm nakreslenými objekty a tlačítkem konec na spodu hlavního okna. Poslední příkaz spouští vykreslení hlavního okna se všemi jeho widgety a předání řízení programu smyčce událostí (na tu se podíváme příště).

knihovna TKinter

Horní lišta je součástí hlavního okna.

Pod ní je první widget – popisek (Label). V tuto chvíli je statický, lze ho nicméně za běhu programu měnit.

Uprostřed je další widget – plátno s nakreslenými objekty: ovál (create_oval), obdélník (create_rectangle), kruhová výseč (create_arc), čára (create_line) a trojúhelník (create_polygon).

Ve spodní části je poslední widget: tlačítko KONEC, které po stisknutí zavolá metodu ukončení hlavního okna.

Příště si do programu přidáme další tlačítka, která po stisknutí vyvolají nějakou konkrétní akci objektu na ploše.