Frage

Ich habe versucht, Code zu schreiben, ein Toplevel Tk-Fenster in Python Auto-schließen würde.

ich am Ende immer es zu arbeiten, aber lief in ein kleines Problem auf dem Weg, dass ich nicht in der Lage war, um herauszufinden.

Die zweiten zwei Tasten arbeiten, aber die erste nicht und ich verstehe nicht, warum ...

Irgendwelche Ideen?

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()
War es hilfreich?

Lösung

Weil es eine Funktion gibt und nicht das Ergebnis.

Sie sollten setzen:

command=TL.destroy

oder wenn Sie verwenden Lambda:

command=lambda: TL.destroy()
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top