在Python中销毁一个顶层tk窗口
我在写一段代码,想让Python里的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()
1 个回答
8
因为它返回的是一个函数,而不是函数的结果。
你应该写:
command=TL.destroy
或者如果你用的是lambda表达式:
command=lambda: TL.destroy()