destroy() method in Tkinter | Python (original) (raw)

Last Updated : 11 Jul, 2025

Tkinter supports a variety of methods to perform various tasks. It also offers some universal method.**destroy()** is a universal widget method i.e we can use this method with any of the available widgets as well as with the main tkinter window.Syntax:

widget_object = Widget(parent, command = widget_class_object.destroy)

This method can be used with after() method.Code #1: destroy() method passed as command

Python3 1== `

importing only those functions

which are needed

from tkinter import * from tkinter.ttk import *

creating tkinter window

root = Tk()

Creating button. In this destroy method is passed

as command, so as soon as button 1 is pressed root

window will be destroyed

btn1 = Button(root, text ="Button 1", command = root.destroy) btn1.pack(pady = 10)

Creating button. In this destroy method is passed

as command, so as soon as button 2 is pressed

button 1 will be destroyed

btn2 = Button(root, text ="Button 2", command = btn1.destroy) btn2.pack(pady = 10)

infinite loop

mainloop()

`

Output: destroy() method in TkinterAs you may observe, in above code that the command that is passed in button-2 is to destroy button-1 so as soon as you press button-2, button-2 will get destroyed.destroy() method passed as command **Code #2:**destroy() method with after() method

Python3 1== `

importing only those functions

which are needed

from tkinter import * from tkinter.ttk import *

creating tkinter window

root = Tk()

Creating button. In this destroy method is passed

as command, so as soon as button 1 is pressed root

window will be destroyed

btn1 = Button(root, text ="Button 1") btn1.pack(pady = 10)

Creating button. In this destroy method is passed

as command, so as soon as button 2 is pressed

button 1 will be destroyed

btn2 = Button(root, text ="Button 2") btn2.pack(pady = 10)

after method destroying button-1

and button-2 after certain time

btn1.after(3000, btn1.destroy) btn2.after(6000, btn2.destroy)

infinite loop

mainloop()

`

**Output:**From output you may see that both the widgets are destroyed after a certain time limit and only root window will be left empty.

Note: There is another method available **quit()** which do not destroy widgets but it exits the tcl/tk interpreter i.e it stops the mainloop().