我试图编写代码在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()
有帮助吗?

解决方案

由于它返回一个函数,而不是它的结果。

您应该把:

command=TL.destroy

或如果使用的λ:

command=lambda: TL.destroy()
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top