At the start of a Tkinter program, you create a root window and then start the mainloop(). So why isn't it standard practice to do the reverse when shutting down the program, via an exit command or quit button ? - that is, call .quit() first, then .destroy() All the tutorials and introductions only seem to call destroy() in their example programs.