How to end Tkinter propbably if not using the Quit button
Question: I tried to find out a solution for my problem, but I couldn't find one. I am
using Python27 on Windows 7.

I have an easy Tkinter GUI with a button:

    
    
    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()
    

Now if I use the Quit button the program closes and there is not task left of
the program. The problem is if someone uses the X-Button to close the Windows
or for examples uses Alt+F4, the task is still running. For later use I freeze
the script to make an executable and if someone uses some method to close the
program except the Quit button the task is still running. And if the task is
still running he or she can't open the program again, because it is still
running in the background and Windows raise an error that the program is still
running.

I tried to add some commands after the mainloop but they are all ignored. How
can I solve this problem?

Thanks for your help! Max


Answer: What about using `WM_DELETE_WINDOW`. For example:

    
    
    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()
    

This will close app with ctr+F4.

