from tkinter import *
class GameBoard(Frame):
def __init__(self):
Frame.__init__(self)
self.master.title("test")
self.grid()
#button frame
self.__buttonPane = Frame(self)
self.__buttonPane.grid()
#buttons
self.__buttonA1 = Button(self.__buttonPane,text = "A1",command = self._close)
self.__buttonA1.grid()
def _close(self):
GameBoard().destroy()
def main():
GameBoard().mainloop()
main()
How would I make my function for close to work?
creates a new instance of
GameBoard. Therefore: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 throughself: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 simplyself.quit():