Skip to main content
 首页 » 编程设计

python之在 python 中销毁 Toplevel tk 窗口

2025年05月04日13grandyang

我试图用 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 

或者如果您使用了 lambda:

command=lambda: TL.destroy()