Aplikację graficzną można zbudować korzystając z podejścia obiektowego. Odpowiednią klasę można zdefiniować ogólnie, ale prawdopodobnie najbardziej elastyczne podejście to dziedziczenie z klasy Frame.
# second1.py import tkinter as tk class Application(tk.Frame): def __init__(self, master=None, title="Application"): tk.Frame.__init__(self, master) self.master = master self.master.title(title) self.grid() # self to master self.create_widgets() def create_widgets(self): self.label = tk.Label(self, text="Hello") self.label.grid() # label to self if __name__ == "__main__": root = tk.Tk() app = Application(root) #print(app.label["text"]) # Hello root.mainloop() # lub app.mainloop() # root # | # app (Frame) # | # Label
# Klasa 'Application' może być stosowana w oknach Toplevel. root = tk.Tk() app1 = Application(root, title="root") top = tk.Toplevel(root) app2 = Application(top, title="top") root.mainloop() # root # / \ # app1 top # / \ # Label app2 # \ # Label