Search on blog:

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.

If you like it
Buy a Coffee