如何将Alt-F4与Python tkinter绑定?

时间:2017-01-24 08:22:12

标签: python tkinter

我正在使用Python和Tkinter构建GUI应用程序。 我希望在用户关闭程序时控制程序的行为。

我使用以下方法安装了新的WM_DELETE_WINDOW协议:

root = Tk()
root.protocol("WM_DELETE_WINDOW", lambda: closes_gracefully())

当用户点击标题栏上的X按钮时,这确实有效,但当用户按下 ALT + F4 时,它无效。< / p>

我尝试绑定密钥序列:root.bind("<Alt-F4>", lambda: closes_gracefully())但它没有用。

如何捕获 ALT + F4 事件?

1 个答案:

答案 0 :(得分:2)

为此,您可以使用atexit.register

它的工作方式类似于程序关闭时执行的堆栈。每次执行register(function)时,此功能都会被推到最前面。如果你添加了a,b和c,它们会以相反的顺序执行(c,b,a)。

在你的情况下,你应该这样做:

register(closes_gracefully)

你应该注意到这几乎总是有效,除了崩溃(alt-f4也可以,只是测试它)。

当函数不带参数时,你甚至可以使用register作为装饰器:

@register
def bye():
    print("I'm out!")
相关问题