Как сделать и менять "слои" в tkinter
Вот у меня есть прога, на ней виджеты, как сделать так чтобы при нажатии на кнопку у меня эти виджеты пропадали, и появлялись новые?
Ответы (2 шт):
Автор решения: Donovan
→ Ссылка
Самое простое - убирание с экрана ненужных виджетов с помощью pack_forget()
/place_forget()
/grid_remove()
и установки нужных с помощью pack
/place
/grid
. Для удобства можно виджеты "засунуть" в Frame
и убирать/добавлять уже его.
Небольшая реализация в коде:
import tkinter as tk
root = tk.Tk()
root.geometry("400x400")
def b1_def():
w1.pack_forget()
w2.pack()
def b2_def():
w1.pack()
w2.pack_forget()
b1 = tk.Button(root, text="Убрать 1 виджет", command=b1_def)
b2 = tk.Button(root, text="Убрать 2 виджет", command=b2_def)
b1.pack()
b2.pack()
w1 = tk.Label(root, text="1 виджет")
w2 = tk.Label(root, text="2 виджет")
w1.pack()
w2.pack()
tk.mainloop()
Автор решения: AlexGriz
→ Ссылка
Удаление виджетов из окна в tkinter осуществляется командой .destroy() Пример использования:
gef delete():
canvas.destroy()