Skip to content Skip to sidebar Skip to footer

How Would I Make Destroy() Method In Tkinter Work With My Code?

from tkinter import * class GameBoard(Frame): def __init__(self): Frame.__init__(self) self.master.title('test') self.grid() #button frame self.__buttonPane

Solution 1:

GameBoard()

creates a new instance of GameBoard. Therefore:

GameBoard().destroy()

creates a new instance and calls destroy() on it which has no effect on the existing instance.

You want access the current instance in your _close() method which is done through self:

def_close(self):
    self.destroy()

However, this only destroys the frame (and its child windows, like the button), not the top level window (master).

To completely close the UI, you could call self.master.destroy() or simply self.quit():

def_close(self):
    self.quit()

Solution 2:

self.master.destroy() will close both the parent and child process (see I.E. for example). self.destroy will close the child process. I know this is an old post, but I figured this information might still be applicable to someone.

I.E.

def_close(self):
    self.master.destroy()

Post a Comment for "How Would I Make Destroy() Method In Tkinter Work With My Code?"