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?"