如果不使用Quit按钮,如何结束Tkinter

时间:2014-12-15 01:38:09

标签: python tkinter terminate

我试图为我的问题找到解决方案,但我找不到一个。 我在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之后添加一些命令,但它们都被忽略了。我该如何解决这个问题?

感谢您的帮助!最大

1 个答案:

答案 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关闭应用程序。