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

Python Tkinter类内使用protocol绑定WM_DELETE_WINDOW禁用关闭按钮失效

问题根因

你在绑定关闭事件回调时没有加self.前缀:
self.root.protocol("WM_DELETE_WINDOW", exit)里的exit会被Python优先识别为全局内置的exit()函数,而非你在GUI类中定义的exit实例方法,你写的空方法根本没有被绑定到窗口关闭事件上,点击关闭按钮还是会走默认销毁逻辑,所以看起来绑定失效。

解决方法

根据你的需求修改绑定语句即可:

  • 完全禁用关闭按钮:绑定你写的空实例方法
    self.root.protocol("WM_DELETE_WINDOW", self.exit)
    
    点击关闭按钮时会触发这个空方法,不会执行任何操作,达到禁用效果。
  • 点击关闭按钮执行自定义清理逻辑:绑定你写的destroyWindow方法
    self.root.protocol("WM_DELETE_WINDOW", self.destroyWindow)
    
    点击关闭时会先执行日志备份、临时文件删除逻辑,再销毁窗口。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 21:09:01