Rozdział 16 · Tworzenie fajnych aplikacji z Tkinter
Frame i LabelFrame: organizują interfejs
Zanim umieścisz dziesiątki widżetów, podziel okno na zrozumiałe regiony.
Frame jest struktura przed układem
ttk.Frame jest kontenerem bez własnej widocznej zawartości,
które grupują powiązane widgety w znaczące regiony:
root
toolbar_frame
content_frame
status_frame
frame.py
import tkinter as tk
from tkinter import ttk
root = tk.Tk()
toolbar_frame = ttk.Frame(root)
content_frame = ttk.Frame(root)
status_frame = ttk.Frame(root)
toolbar_frame.pack(side="top", fill="x")
content_frame.pack(side="top", fill="both", expand=True)
status_frame.pack(side="bottom", fill="x")
W każdej klatce możesz używać niezależnie pack()
lub grid() – zasada „nie mieszać”
LabelFrame jest grupą wizualnie podpisaną
labelframe.py
nastrojki = ttk.LabelFrame(root, text=„Ustawienia”)
nastrojki.pack(padx=10, pady=10, fill="x")
ttk.Checkbutton(nastrojki, text=„Mroczny motyw”).pack(anchor="w")
LabelFrame nie jest na każdą drobnostkę
Zastosowanie
LabelFrame dla naprawdę powiązanej grupy ustawień, a nie dla każdego pojedynczego widżetu — w przeciwnym razie interfejs zamienia się w drabinę klatek.Praktyka: organizowanie interfejsu poprzez Frame
Moduł tkinter otwiera natywne okno Python — wykonaj lokalnie w VS Code, PyCharm lub Jupyter
Praktyka kursuje lokalnie