Najprostszy obiektowy program w Tkinter
We wpisie Najprostszy program w Tkinter pokazałem najprostszy program w wersji funkcyjnej a teraz ten sam w postaci obiektowej.
import Tkinter as tk
class App(tk.Tk):
def run(self):
self.mainloop()
App().run()
Kod zawiera:
* import modułu Tkinter i nadanie mu aliasu tk aby było mniej pisania ale żeby wciąż było widać, które elementy użyte w kodzie pochodzą z tego modułu.
* stworzenie klasy dziedziczącej po Tk(), która to tworzy główne okno
* stworzenie metody run(), w której wywoływana jest mainloop() czyli główna pętla
- w ten sposób kod w będzie trochę przypominał to co mamy w PyQt czy wxPython
Przykład z dodaniem funkcji __init__
import Tkinter as tk
class App(tk.Tk):
def __init__(self):
tk.Tk.__init__(self)
# tu beda tworzone inne elementy okna
def run(self):
self.mainloop()
App().run()
Niekiedy są przykłady, które dziedziczą po Frame co też działa aczkolwiek trzeba wiedzieć, że Frame to nie okno tylko obiekt, który służy do grupowania kilku widgetów aby potem umieścić go w oknie. Okno może zawierać kilka Frame i każdy z nich może wykorzystywać inny układ (pack() lub grid()). Można też grupować po to aby szybko chować i pokazywać elementy.
Frame można też wykorzystać poprzez dziedziczenie przy tworzeniu własnego widgetu.
furas.pl