Domanda

Stavo cercando di scrivere codice che chiudesse automaticamente una finestra Toplevel Tk in Python.

Ho finito per farlo funzionare, ma ho riscontrato un piccolo problema lungo il percorso che non sono riuscito a capire.

I secondi due pulsanti funzionano, ma il primo no e non capisco perché ...

Qualche 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()
È stato utile?

Soluzione

Perché restituisce una funzione e non il suo risultato.

Dovresti mettere:

command=TL.destroy

o se hai usato lambda:

command=lambda: TL.destroy()
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top