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