1

我试图编写可以在 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()
4

1 回答 1

8

因为它返回一个函数而不是它的结果。

你应该把:

command=TL.destroy

或者如果你使用 lambda:

command=lambda: TL.destroy()
于 2008-12-09T04:59:40.207 回答