Hi Jim, The problem with your code is that Tk's mainloop continues to run even though you have closed the window. The cleaner way to close such a GUI program is to explicitly stop the main loop and the Python interpreter at the appropriate time.
In this particular case, you may provide a callback function that is triggered on the event of a window being manually closed by the user. Here's a revised version of your program that should work better, even within IDLE. Of course, there is still some system dependency among the program, IDLE, and the underlying operating system. Some interesting reading is at http://www.3dartist.com/WP/python/tknotes.htm With regard, Michael ------------------------------------------- from Tkinter import Tk,Label def onClose(): root.destroy() # stops the main loop and interpreter root = Tk() root.protocol("WM_DELETE_WINDOW", onClose) # handle event when window is closed by user z = Label(root, text="Hello World!") z.grid() root.mainloop() ------------------------------------------- On Friday December 28, 2007, Jim Morcombe wrote: > Oops! Here's the program: > --------------------------- > from Tkinter import * > > root = Tk() > z = Label(root, text="Hello World!") > z.grid() > root.mainloop() > ------------------------------ > > Jim > > ----- Original Message ----- > From: Jim Morcombe > To: python tutor mailing list > Sent: Friday, December 28, 2007 3:51 PM > Subject: [Tutor] Closing GUI program > > > I have copied the following program. When I run it, (By pressing F5 > from IDLE), it displays the "Hello world" message. > > When I close the window, the "Hello world" message disappears, but it > seems that the program is still running, because when I close the shell, i > get the message "The program is still running. Do you want to kill it?" > > How do I get the program to terminate when the window is closed? > > Jim _______________________________________________ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor