У меня есть куча виджетов, упакованных в рамку, и затем я динамически создаю больше виджетов при нажатии кнопки. Затем они упаковываются влево и оказываются рядом с существующими виджетами.
Я бы предпочел упаковать эти виджеты в середину существующих виджетов в этом фрейме (они все в одной строке). Есть ли способ сделать это, переупорядочив их как дочерние элементы кадра, в который они были упакованы?
Не хотел бы использовать здесь сетку вместо пакета. Я могу получить их список в качестве дочерних элементов своего фрейма, и я предпочел бы продолжать использовать .winfo_children () для манипулирования ими, а не добавлять их в какой-то другой список и использовать это. В основном я хочу взять button3, button4 и button5 и переместить их вверх в порядке наложения, чтобы они отображались между label14 и label15.
Должен ли я упаковывать все виджеты после label14 до того, как я создам эти три кнопки, упакую эти три кнопки, а затем упакую остальные? Или я могу как-то переупорядочить дочерний стек?
Спасибо !!
.!window.!frame.!label
.!window.!frame.!optionmenu
.!window.!frame.!button
.!window.!frame.!label2
.!window.!frame.!label3
.!window.!frame.!label4
.!window.!frame.!label5
.!window.!frame.!button2
.!window.!frame.!label6
.!window.!frame.!button3
.!window.!frame.!button4
.!window.!frame.!button5
[<tkinter.Frame object .!window.!frame>, <tkinter.Frame object .!window.!frame2>, <tkinter.Frame object .!window.!frame3>]
for i in range(0, self.site_column_count):
start = (i * column_break)
end = (i + 1) * column_break
this = self.site_list[start:end]
header = str(self.site_list[start]) + "-" + str(self.site_list[end - 1])
self.receiver.set(" Sites ")
# option menu column 1
new_dropdown = "self.site_picker_" + str(i)
new_dropdown = tk.OptionMenu(main_GUI.windows[0].window_nav_frame, self.receiver, *this, command = lambda _: self.show_site_info())
new_dropdown.pack(side = tk.LEFT, fill = tk.Y)
new_dropdown.configure(highlightthickness = 0)
format_item(new_dropdown, **themes[1])
print(main_GUI.windows[0].winfo_children())