如果我们点击tkinter窗口程序的关闭按钮(X,一般在右上角),窗口会被关闭,这个过程实际上调用了窗口的destroy函数,本文介绍如何响应这个窗口关闭事件,不让tkinter系统自动调用destroy函数,而是调用一个自定义的函数,或者先运行一段自定义的代码,最后自己再调用destroy。

先上代码:

>>> import tkinter as tk
>>> root = tk.Tk()
>>> root.protocol('WM_DELETE_WINDOW', root.iconify)
''
>>> root.protocol('WM_DELETE_WINDOW', root.destroy)
''
>>> root.protocol('WM_DELETE_WINDOW', customized_function)

使用protocol函数,绑定关闭事件到一个指定的函数入口。如果绑定root.iconify,点击关闭(X),就是最小化窗口,而不是关闭。

您也可以自己写一个函数,先执行一段自己的代码,最后调用destroy函数。protocol函数肯定还可以绑定其它事件,我暂时还不会,以后再慢慢学习和分享。了解了这个基本逻辑,学习其它事件也很容易了 。

在程序中可以写在相应的mainloop().之前,我试了,可以实现

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐