destruyendo una ventana Toplevel tk en python
Pregunta
Estaba tratando de escribir código que cerrara automáticamente una ventana Toplevel Tk en Python.
Terminé haciendo que funcionara, pero me encontré con un pequeño problema en el camino que no pude resolver.
Los dos segundos botones funcionan, pero el primero no funciona y no entiendo por qué ...
¿Alguna idea?
from Tkinter import *
root = Tk()
def doDestroy ():
TL.destroy()
TL = Toplevel()
TL.b = Button (TL, text="lambda destroy", command=lambda: TL.destroy)
TL.b.pack()
TL.b2 = Button (TL, text="callback destroy", command=doDestroy)
TL.b2.pack()
de = lambda: TL.destroy()
TL.b3 = Button (TL, text="lambda that works", command=de)
TL.b3.pack()
root.mainloop()
Solución
Porque devuelve una función y no su resultado.
Deberías poner:
command=TL.destroy
o si usaste lambda:
command=lambda: TL.destroy()
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow