You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Tkinter窗口调用destroy()无法关闭问题求助

问题解决:点击Sign in按钮无法关闭tkinter窗口

你的代码存在两处关键问题,导致无法正常关闭窗口:

  • 窗口对象未实例化:window = tkinter.Tk 只是引用了Tk类,没有创建窗口实例。必须调用构造函数tkinter.Tk()才能生成可操作的窗口对象,否则调用destroy()时会因为不是实例而报错。
  • 缺少主事件循环:tkinter窗口需要通过mainloop()启动事件循环,否则窗口根本无法显示,按钮也无法响应点击事件。

另外还有一个代码规范问题:signInButton = tkinter.Button(...).pack() 中pack()方法返回None,如果后续需要对按钮进行修改或操作,会因为变量指向None而失败,建议分开写以保证代码可维护性。

修正后的代码如下:

import random, math, tkinter

def main():
    # 实例化窗口对象
    window = tkinter.Tk()
    # 先创建按钮对象,再调用pack()布局
    signInButton = tkinter.Button(
        text="Sign in",
        command=lambda: signIn(window),
    )
    signInButton.pack()
    # 启动主事件循环
    window.mainloop()

def signIn(mainWindow):
    mainWindow.destroy()

main()

内容的提问来源于stack exchange,提问作者yashsss

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.02 09:42:03