¿Cómo ver si existe un widget en Tkinter?

Ahora, sé que puede verificar si existe una ventana:

x.winfo_exists() 

Lo que devuelve un booleano. Ahora he buscado pero no he podido encontrar exactamente lo que necesito. Más específicamente, necesito verificar la existencia de mis botones, tags, cuadros de lista, controles deslizantes, etc.

winfo_exists devuelve 1 a menos que haya destruido el widget, en cuyo caso devuelve 0. Este método puede winfo_exists en cualquier clase de widget, no solo en la raíz Tk o en los Toplevels. Alternativamente, puedes obtener todos los hijos de un widget con winfo_children :

 >>> import Tkinter as tk >>> root = tk.Tk() >>> label = tk.Label(root, text="Hello, world") >>> label.winfo_exists() 1 >>> root.winfo_children() [] >>> label.destroy() >>> label.winfo_exists() 0 >>> root.winfo_children() [] 

También puede imprimir el tipo ie. tipo (etiqueta). Esto puede ser útil para proporcionar no solo la existencia, sino también encontrar si aparece algo “Ninguno” sin un error. El tipo () le dirá si tiene una instancia u otro tipo que puede proporcionar pistas valiosas sobre qué tan cerca está el progtwig realizando o devolviendo elementos a lo que cree que está preguntando. El object.winfo_exists () y object.winfo_children es específico, y arrojará un error si el objeto no es un tipo ‘instancia’.