Skip to content
Related Articles

Related Articles

Improve Article
Save Article
Like Article

destroy() method in Tkinter | Python

  • 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.

 Attention geek! Strengthen your foundations with the Python Programming Foundation Course and learn the basics.  

To begin with, your interview preparations Enhance your Data Structures concepts with the Python DS Course. And to begin with your Machine Learning Journey, join the Machine Learning - Basic Level Course

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




# 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 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




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




My Personal Notes arrow_drop_up
Recommended Articles
Page :