TKinter-destroying a window

Fredrik Lundh effbot at
Tue Apr 18 16:39:14 CEST 2000

gregholmes at wrote:
> Sorry, I'm reading TFM but haven't figured this
> out yet. If I am done with a secondary (or
> tertiary, or whatever) window (in TKinter), can I
> just destroy the window or do I need to get rid
> of any class instantiation that is
> attached/associated to it? i.e.
> ....
> theWindow=Toplevel()
> solveThis=SolveThis(theWindow)
> ....
> theWindow.destroy()
> Will the class instantiation and its variables
> and everything still be laying around?

not everything -- destroy releases all the Tk specific
stuff, but the proxy object hangs around until you've
removed all references to it.

(since Python objects don't know who's referring to
them, they cannot destroy all references by them-

in your case, assuming that "theWindow" is a global
variable, you can use:

    del theWindow


    theWindow = None

to get rid of it (assuming SolveThis doesn't create
a circual reference, that is).

if the code is local scope (inside a function or a
method), the variable will be deleted by Python
when you leave that scope.


More information about the Python-list mailing list