détruire une fenêtre Toplevel tk en python
Question
J'essayais d'écrire du code qui fermerait automatiquement une fenêtre Toplevel Tk en Python.
J'ai fini par le faire fonctionner, mais j'ai rencontré un petit problème que je ne pouvais pas résoudre.
Les deux autres boutons fonctionnent, mais le premier ne fonctionne pas et je ne comprends pas pourquoi ...
Des idées?
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()
La solution
Parce qu'il renvoie une fonction et non son résultat.
Vous devriez mettre:
command=TL.destroy
ou si vous avez utilisé lambda:
command=lambda: TL.destroy()
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow