拦截Tkinter的“退出”命令?
我正在用Python和Tkinter写一个客户端-服务器程序。我需要服务器能够记录连接的客户端。为此,我希望客户端在用户点击退出按钮(就是右上角的那个“X”)后,自动向服务器发送一条消息。请问我怎么知道用户什么时候退出程序呢?
5 个回答
4
在我的情况下,下面的代码没有成功:
root.protocol("WM_DELETE_WINDOW", app.on_delete) # doesn't work
不过,使用这种形式就成功了:
root.wm_protocol ("WM_DELETE_WINDOW", app.on_delete) # does work
7
你可以使用Python的 atexit
模块。
比如说:
import atexit
def doSomethingOnExit():
pass
atexit.register(doSomethingOnExit)
21
你想使用顶层窗口的 wm_protocol 方法。具体来说,你对 WM_DELETE_WINDOW
协议很感兴趣。如果你使用这个方法,它可以让你注册一个回调函数,当窗口被关闭时,这个函数会被调用。
用法:
root.protocol("WM_DELETE_WINDOW", app.on_delete)