Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to see if a widget exists in Tkinter?

Now, I know that you can check to see if a window exists by:

x.winfo_exists()

which returns a Boolean. More exactly, I need to check the existence of my buttons, labels, list boxes, sliders etc. Then what?

like image 282
madprogramer Avatar asked Mar 09 '13 14:03

madprogramer


1 Answers

winfo_exists returns 1 unless you have destroyed the widget, in which case it returns 0. This method can be called on any widget class, not only the Tk root or Toplevels. Alternatively, you can get all the children of a widget with winfo_children:

>>> import Tkinter as tk
>>> root = tk.Tk()
>>> label = tk.Label(root, text="Hello, world")
>>> label.winfo_exists()
1
>>> root.winfo_children()
[<Tkinter.Label instance at 0x0000000002ADC1C8>]
>>> label.destroy()
>>> label.winfo_exists()
0
>>> root.winfo_children()
[]
like image 188
A. Rodas Avatar answered Oct 10 '22 02:10

A. Rodas