2 | ||
Editor: geon
Time: 2011/10/11 18:40:33 GMT+2 |
||
Note: pridavani znacek 2x-3x |
changed: - Ahoj světe! --------------- .. image:: py30.png :align: right .. image:: http://www.geon.wz.cz/pyczwiki/ahojsvete1.jpg :: # -*- 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 -------------- .. image:: http://www.geon.wz.cz/pyczwiki/ahojsvete2.jpg :: # -*- 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: ....................................................... .. image:: http://effbot.org/media/cache/76734d5c44455920d98197bd2958fec7.gif :: 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.
# -*- coding: utf8 -*- from tkinter import * hlavni=Tk() w=Label(hlavni, text="Ahoj světe!") w.pack() hlavni.mainloop()
program nezavřeme, protože jsme nezadali žádné 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()
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.