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

Last Updated : 24 Nov, 2021

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

from tkinter import *

from tkinter.ttk import *

root = Tk()

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

btn1.pack(pady = 10 )

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

btn2.pack(pady = 10 )

mainloop()

Output:
destroy() method in Tkinter

As 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

from tkinter import *

from tkinter.ttk import *

root = Tk()

btn1 = Button(root, text = "Button 1" )

btn1.pack(pady = 10 )

btn2 = Button(root, text = "Button 2" )

btn2.pack(pady = 10 )

btn1.after( 3000 , btn1.destroy)

btn2.after( 6000 , btn2.destroy)

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.

https://media.geeksforgeeks.org/wp-content/uploads/20190429231129/ice_video_20190429-230659_edit_0.mp4

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().

Similar Reads

Introduction






Widgets













































Geometry Management









Binding Functions




Working with Images in Tkinter






Tkinter Advance




















Applications and Projects