blog.furas.pl
# prywatne notatki - Python, Linux, Machine Learning, etc.

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.

Książki: python-dla-kazdego-podstawy-programowania python-wprowadzenie python-leksykon-kieszonkowy python-receptury python-programuj-szybko-i-wydajnie python-projekty-do-wykorzystania black-hat-python-jezyk-python-dla-hackerow-i-pentesterow efektywny-python-59-sposobow-na-lepszy-kod tdd-w-praktyce-niezawodny-kod-w-jezyku-python aplikacje-internetowe-z-django-najlepsze-receptury