Rozdział 16 · Tworzenie fajnych aplikacji z Tkinter
pack szczegółowo: fill, expand i zagnieżdżone ramki
pack nie jest tylko z góry: ma kontrolę nad wolną przestrzenią.
pack: sposobu przydzielania przestrzeni
side decyduje, po której stronie zostanie położony następny
widget, fill — rozciągać ją na całą dostępną szerokość/wysokość, a expand to, czy wykorzystać dodatkowe wolne miejsce:
| Parametr | Znaczenie | Efekt |
|---|---|---|
| fill | "x" | rozciągnąć widget na szerokość przydzielonego mu paska |
| fill | "y" | rozciągnąć widżet na wysokość przydzielonego mu pasa |
| fill | "both" | rozciągają zarówno szerokość, jak i wysokość |
| expand | True | dać widżetowi dodatkową wolną przestrzeń w kontenerze |
pack_fill_expand.py
ttk.Label(root, text=„Top”, background="#E7DEFF").pack(side="top", fill="x")
ttk.Label(root, text=„Center”, background="#B9A0FC").pack(side="top", fill="both", expand=True)
ttk.Label(root, text=„Bottom”, background="#E7DEFF").pack(side="bottom", fill="x")
Wcięcie zewnętrzne i wewnętrzne to nie to samo
padx/pady u .pack(...) — to wcięcie na zewnątrz widżetu, między nim a sąsiadami. Odstęp w środku samego widżetu (pomiędzy ramką a treścią) może być konfigurowana osobno — na przykład przez padding= u ttk.Frame.Zagnieżdżone ramki + pack
vlozhennye_frejmy.py
forma_frame = ttk.Frame(root, padding=10)
forma_frame.pack(fill="x")
ttk.Label(forma_frame, text=„Imię:”).pack(side="left")
ttk.Entry(forma_frame).pack(side="left", fill="x", expand=True)
Etykieta jest naciskana po lewej, a pole wejściowe zajmuje całą pozostałą przestrzeń poziomą
to typowa kombinacja side="left" + fill="x"
+ expand=True dla formy Signature - Stretch Field.
Praktyka: pack z fill i expand
Moduł tkinter otwiera natywne okno Python — wykonaj lokalnie w VS Code, PyCharm lub Jupyter
Praktyka kursuje lokalnie