我有一个tkinter程序,当你从它中取出一个函数时,使用:
来调用它root.protocol('WM_DELETE_WINDOW', in_close)
其中in_close是一个被调用的过程。问题是关闭计算机时不会再现此行为。出于程序的目的,在程序关闭或关闭机器时触发此功能是完全必要的。
我在python 3.3.3以防万一。当它被关闭时,有谁知道如何重现这个? :(
非常感谢任何想法!!谢谢!
答案 0 :(得分:1)
我不知道Tkinter有一个特定的工具来捕捉你建议的系统关闭。您最好注册一个信号处理程序,它可以捕获关闭信号并触发in_close
函数。
(另外值得查看here了解更多细节)
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关闭事件的讨论,请参阅: