本文由 简悦 SimpRead 转码, 原文地址 zhuanlan.zhihu.com
最近在学习 tkinter,发现关闭窗口后,进程没退出,找遍全网,终于找到解决方法了。特此记录一下。
解决方法:
1、增加 root.protocol("WM_DELETE_WINDOW", _quit)
2、增加_quit 函数定义
详细代码如下:
import tkinter as tk
def _quit():
# 执行以下两行代码时必须在同一个线程,tkinter是单线程
# 同时,此次遇到的问题除此之外还有pynput.keyboard的listener没有调用stop()的问题
# 因此造成关闭后进程依然存在
root.quit()
root.destroy()
root = tk.Tk()
root.protocol("WM_DELETE_WINDOW", _quit)
tk.Label(root, 'hi').pack()
root.mainloop()
改变前代码:
icon.stop()
win.destroy()
改变后解决问题的代码:
icon.stop()
win.quit()
listener.stop()
win.destroy()
Comments | NOTHING