문제

파이썬에서 Toplevel TK 창을 자동으로 클로즈 할 코드를 작성하려고했습니다.

나는 그것을 작동하게했지만, 내가 알아낼 수 없었던 방식으로 약간의 문제를 일으켰다.

두 번째 버튼은 작동하지만 첫 번째 버튼은 그렇지 않으며 그 이유를 이해하지 못합니다 ...

어떤 아이디어?

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()
도움이 되었습니까?

해결책

결과가 아닌 함수를 반환하기 때문입니다.

당신은 다음을해야합니다 :

command=TL.destroy

또는 람다를 사용한 경우 :

command=lambda: TL.destroy()
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top