Глава 16 · Создаём классные приложения с Tkinter
Идеальная компоновка — grid
Для форм с несколькими колонками grid() удобнее, чем pack().
.pack() прекрасно подходит для простых случаев, но у него
есть предел: сложные формы с несколькими колонками собрать сложно. Для этого есть
.grid() — размещение по строкам и столбцам, как в таблице:
grid.py
import tkinter as tk
root = tk.Tk()
tk.Label(root, text="Имя:").grid(row=0, column=0)
tk.Entry(root).grid(row=0, column=1)
tk.Label(root, text="Email:").grid(row=1, column=0)
tk.Entry(root).grid(row=1, column=1)
tk.Button(root, text="Отправить").grid(row=2, column=0, columnspan=2)
root.mainloop()
Не смешивайте pack() и grid() в одном контейнере
Виджеты внутри одного и того же родительского окна (или фрейма) должны использовать либо только
pack(), либо только grid() — смешение вызывает ошибку или зависание интерфейса. Разные контейнеры (например, вложенные Frame) могут использовать разные способы размещения независимо друг от друга.Практика в Jupyter Notebook
16-07-grid.ipynb · компоновка через grid()