在PC关机时触发函数 - tkinter
我有一个使用tkinter的程序,当你点击窗口右上角的“X”关闭它时,会调用一个函数,代码如下:
root.protocol('WM_DELETE_WINDOW', in_close)
这里的in_close是一个会被调用的过程。问题是,当你关掉电脑时,这个行为并没有发生。对于我的程序来说,当程序关闭或者你关掉电脑时,必须触发这个函数。
我使用的是python 3.3.3,想确认一下。有没有人知道在关机时怎么能让这个函数也被调用呢? :(
任何想法都非常感谢!!谢谢!!
1 个回答
1
我不知道Tkinter有没有专门的工具来捕捉你说的系统关机信号。你可以注册一个信号处理器,这样就能捕捉到关机信号,并触发in_close
这个函数。
(另外,看看这里,可以获取一些额外的信息)
import signal
def in_close(signum = None, frame = None):
# Here you can attempt to gently exit your application.
pass
# For some common signals that will close your program.
for sig in [signal.SIGTERM, signal.SIGINT, signal.SIGHUP, signal.SIGQUIT]:
signal.signal(sig, in_close)
正如评论中提到的,这个方法在Windows上并不适用。如果想讨论如何处理Windows的关机事件,可以查看: