Один из подходов - хранить ссылки на каждый виджет в коллекциях, которыми можно управлять независимо. Здесь мы отдельно храним Label
, Button
и Entry
. При нажатии кнопки remove all but entry
все виджеты уничтожаются, кроме Entries
import tkinter as tk
def remove_all_but_entries():
for button in buttons:
button.destroy()
for label in labels:
label.destroy()
root = tk.Tk()
labels = []
labels.append(tk.Label(root, text='make disappear example'))
for label in labels:
label.pack()
buttons = []
buttons.append(tk.Button(root, text='start', command=lambda: print('button start')))
buttons.append(tk.Button(root, text='stop', command=lambda: print('button stop')))
buttons.append(tk.Button(root, text='remove all but entry', command=remove_all_but_entries))
for button in buttons:
button.pack()
entries = []
entries.append(tk.Entry(root))
for entry in entries:
entry.pack()
root.mainloop()