Ahoj světe!
# -*- coding: utf8 -*- from tkinter import * hlavni=Tk() w=Label(hlavni, text="Ahoj světe!") w.pack() hlavni.mainloop()
- # -- coding: utf8 -- - aby nám fungovala čeština
- Tk() - vytvoří hlavní okno
- Label() - definuje Label (Štítek), který se má zobrazit uvnitř okna 'hlavni'
- pack() - zobrazí Label do okna
- hlavni.mainloop() vstupuje do smyčky událostí, kdy program čeká na nějakou akci (na stisknuté tlačítko, na rozbalení menu, ...). Bude čekat tak dlouho, dokud
program nezavřeme, protože jsme nezadali žádné události.
Události
# -*- coding: utf8 -*- from tkinter import * hlavni=Tk() label=Label(hlavni, text="Ahoj světe!").pack() button=Button(text="Sbohem", command=lambda:hlavni.destroy()).pack() hlavni.mainloop()
- popisek Buttonu (Tlačítka) je určen parametrem text
- Button definuje tzv. callback funkci command: co se má stát, jaká funkce se má spustit, když se tlačítko zmáčkne.
- nyní tedy má mainloop() událost, na kterou může reagovat, takže když tlačítko zmáčkneme tak mainloop() vykoná příkaz 'hlavni.destroy()'. Běžněji se však takto volají obyčejné funkce.
V objektovém podání vypadá výše uvedený příklad takto:
from tkinter import * class Application(Frame): def say_hi(self): print("hi there, everyone!") def createWidgets(self): self.QUIT = Button(self) self.QUIT["text"] = "QUIT" self.QUIT["fg"] = "red" self.QUIT["command"] = self.quit self.QUIT.pack({"side": "left"}) self.hi_there = Button(self) self.hi_there["text"] = "Hello", self.hi_there["command"] = self.say_hi self.hi_there.pack({"side": "left"}) def __init__(self, master=None): Frame.__init__(self, master) self.pack() self.createWidgets() root = Tk() app = Application(master=root) app.mainloop() root.destroy()
Více o tomto příkladě i s podrobným vysvětlením na http://effbot.org/tkinterbook/tkinter-hello-again.htm.