Как удалить виджет в tkinter
Для полного удаления виджета можно использовать метод destroy , пример:
После нажатия кнопка удалится полностью (т.е. с ней больше нельзя будет ничего сделать: например, при попытке разместить ее повторно будет ошибка).
Если виджет нужно временно удалить из окна с возможностью потом вернуть, то используйте следующие методы:
Методы .grid_forget , .pack_forget (он же просто .forget ), .place_forget удаляют виджет из окна, но виджет продолжает сущестовать, его можно снова разместить в окне.
Метод .grid_remove позволяет скрыть виджет, и потом вернуть его обратно с теми же параметрами и в то же место (в ту же строку и колонку сетки) просто вызовом .grid() без параметров.
Как скрыть, восстановить и удалить Tkinter виджеты

В данном уроке мы продемонстрируем, как скрыть, восстановить и удалить Tkinter виджеты, нажав на кнопку. В конце мы также покажем, как удалить или убить существующие Tkinter-виджеты.
Скрыть и восстановить виджеты Tkinter
pack_forget() метод для сокрытия виджетов Tkinter Widgets
В отличие от метода pack в виджетах Tkinter, мы могли скрыть виджеты Tkinter, вызвав метод pack_forget() для того, чтобы сделать виджеты невидимыми.
pack_forget() привязывается к команде кнопки buttonForget .
После нажатия кнопки виджет метки будет скрыт, но сама метка все еще существует, но становится невидимой.
Please enable JavaScript
Нам нужно снова вызвать метод pack() для упаковки виджета, чтобы сделать его видимым, или другими словами, для его восстановления.
grid_forget() Метод скрытия виджетов, если используется макет grid
Если виджеты размещаются в менеджере компоновки grid , то следует использовать метод grid_forget() для того, чтобы сделать виджеты Tkinter невидимыми.
Здесь мы связываем метод grid_forget с командой кнопки.
Вы можете заметить, что позиция метки не совпадает до того, как она будет скрыта после повторного вызова метода grid .
Если мы хотим восстановить исходную позицию метки, то метод grid_remove будет правильным вариантом.
grid_remove() Метод скрытия виджетов цинтера, если используется grid макет
grid_remove() скрывает виджет, но запоминает опции сетки, такие как колонка и ряд .
Удалить тикинтерные виджеты Нажмите кнопку
В этом разделе мы покажем, как навсегда удалить виджеты Tkinter, вызвав метод destroy .
Deleting widgets with Tkinter destroy()
report this ad
report this ad
report this ad
This article explains how to remove widget(s) the Tkinter destroy.
The Tkinter destroy method has the ability to “destroy” any Tkinter GUI objects. This includes widgets like Entry, Button, Toplevel and even the entire Tkinter application.
The syntax is very simple. You simply have to call it as a method on any Tkinter object as shown below.
The Destroy Function
When used on root the destroy function will cause Tkinter to exit the mainloop() and simultaneously destroy all the widgets within the mainloop() .
The window produced by the above code. Clicking the button will destroy the window, causing it to disappear.

The code below is used simply to destroy a single individual widget.
Below is short 3 second video demonstrating the effect of the above code.
This marks the end of the Tkinter destroy widget article. Any suggestions or contributions for CodersLegacy are more than welcome. Questions regarding the article content can be asked in the comments section below.

report this ad
Не удаляется кнопка в tkinter python. Что делать?
Почему не удаляется? И тогда как удалить эту кнопку в функции?
- Вопрос задан более года назад
- 442 просмотра
Средний 2 комментария
- Вконтакте
Не надо никаких глобалов. В данном случае можно вообще обойтись без промежуточной функции, просто привязать метод самой кнопки
Если все же нужна доп. функция (например доп. функционал), то передавать аргументы можно используя lambda/partial