Edit detail for TkinterAhojSvete revision 2 of 1

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.

Ahoj světe!

py30.png 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

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:

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.