Python Tkinter应用如何捕获macOS ⌘Q快捷键实现线程优雅关闭
解决方案
macOS 平台下 Tkinter 对 Command 键(即⌘键)的修饰符标识为Command,不需要使用Meta_L/Meta_R单独绑定左右按键,直接绑定对应组合事件即可拦截⌘Q触发的退出操作。
代码修改步骤
在你现有的事件绑定逻辑中新增⌘Q绑定即可,建议增加平台判断避免影响其他系统的运行:
import sys # 原有绑定逻辑 self.root.bind('<Control-x>', self.exitapp1) self.root.protocol("WM_DELETE_WINDOW", self.exitapp2) # 新增macOS专属⌘Q绑定 if sys.platform == 'darwin': self.root.bind('<Command-q>', self.exitapp1) atexit.register(self.catch_atexit)
效果说明
修改完成后触发⌘Q时,会优先走你自定义的exitapp1逻辑,先关停子线程再退出程序,不会再出现系统直接杀死主线程的问题。
内容的提问来源于stack exchange,提问作者EddyHoogevorst
相关产品推荐
相关产品推荐

