我试图为我的问题找到解决方案,但我找不到一个。 我在Windows 7上使用Python27。
我有一个带按钮的简单Tkinter GUI:
import Tkinter
import sys
def close_window():
root.destroy()
sys.exit()
root = Tkinter.Tk()
#exit button
draw_button = Tkinter.Button(root, text="Quit", command = close_window)
draw_button.grid(row=1, column=1)
root.mainloop()
现在,如果我使用Quit按钮,程序将关闭,程序中没有剩余任务。问题是如果有人使用X-Button关闭Windows或者例如使用Alt + F4,则任务仍在运行。 为了以后使用,我冻结脚本以生成可执行文件,如果有人使用某种方法关闭程序,除了退出按钮,任务仍在运行。如果任务仍在运行,则他或她无法再次打开程序,因为它仍然在后台运行,并且Windows引发程序仍在运行的错误。
我尝试在mainloop之后添加一些命令,但它们都被忽略了。我该如何解决这个问题?
感谢您的帮助!最大
答案 0 :(得分:3)
使用WM_DELETE_WINDOW
怎么样?例如:
import tkinter
import sys
def close_window():
root.destroy()
sys.exit()
def win_deleted():
print("closed");
close_window();
root = tkinter.Tk()
#exit button
draw_button = tkinter.Button(root, text="Quit", command = close_window)
draw_button.grid(row=1, column=1)
root.protocol("WM_DELETE_WINDOW", win_deleted)
root.mainloop()
这将使用ctr + F4关闭应用程序。