В документации Tk говорится (последний раздел), что вложенные макеты могут быть достигнуты с помощью tk.frame
. Следующий небольшой пример не работает должным образом, вместо:
import tkinter as tk
window = tk.Tk()
window.geometry('250x100')
# first level, window as parent
tk.Label(window, text='Choose file:').grid(row=0, column=0, sticky=tk.W)
tk.Button(window, text='Browse ...').grid(row=1, column=0, sticky=tk.W)
fr = tk.Frame(window).grid(row=2, column=0, sticky=tk.W)
# nested, frame as parent
tk.Entry(fr).grid(row=0, column=0, sticky=tk.W)
tk.Entry(fr).grid(row=0, column=1, sticky=tk.W)
tk.mainloop()
он производит:
Реальный интерфейс гораздо сложнее, поэтому я действительно хочу использовать вложенные сетки вместо одной сетки с несколькими столбцами.