Чтобы упаковка и сетка использовались в одном и том же коде, вам необходимо убедиться, что вы используете их в отдельных контейнерах.Каждый контейнер (корневое окно, окно верхнего уровня, фрейм) может иметь только grid()
или pack()
.
Например, если мне нужно использовать pack для фрейма, а затем использовать сетку внутри этого фрейма, которыйХорошо.Но я не могу использовать pack внутри фрейма, а также grid внутри фрейма.
Если вы откроете окно, созданное из приведенного ниже кода, вы увидите, как pack и grid могут работать вместе при правильном использовании.
import tkinter as tk
root = tk.Tk()
top_frame = tk.Frame(root)
top_frame.pack(sid="top")
bot_frame = tk.Frame(root)
bot_frame.pack(sid="bottom")
tk.Label(top_frame, text="Row 0 of top_frame").grid(row=0, column=0)
tk.Label(bot_frame, text="Row 0 of bot_frame").grid(row=0, column=0)
tk.Label(bot_frame, text="Row 1 of bot_frame").grid(row=1, column=0)
tk.Label(bot_frame, text="Row 2 of bot_frame").grid(row=2, column=0)
tk.Button(bot_frame, text="Row 3 of bot_frame").grid(row=3, column=0)
root.mainloop()