destruindo uma janela tk Toplevel em python
Pergunta
Eu estava tentando escrever código que auto-fecha uma janela seria Toplevel Tk em Python.
acabei fazê-la funcionar, mas funcionou em um pequeno problema ao longo do caminho que eu não era capaz de descobrir.
O segundo dois botões de trabalho, mas o primeiro não e eu não entendo por que ...
Todas as idéias?
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()
Solução
Porque ela retorna uma função e não o seu resultado.
Você deve colocar:
command=TL.destroy
ou se você lambda usados:
command=lambda: TL.destroy()
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow