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.