Vic*_*Oza 6 python tkinter destroy
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()
Run Code Online (Sandbox Code Playgroud)
我如何让我的功能接近工作?
GameBoard()
Run Code Online (Sandbox Code Playgroud)
创建一个新的实例GameBoard.因此:
GameBoard().destroy()
Run Code Online (Sandbox Code Playgroud)
创建一个新实例并对其进行调用destroy(),这对现有实例没有影响.
您希望访问方法中的当前实例,该实例_close()通过self以下方式完成:
def _close(self):
self.destroy()
Run Code Online (Sandbox Code Playgroud)
但是,这只会破坏框架(及其子窗口,如按钮),而不是顶层窗口(主窗口).
要完全关闭用户界面,您可以致电self.master.destroy()或简单地self.quit():
def _close(self):
self.quit()
Run Code Online (Sandbox Code Playgroud)
小智 5
self.master.destroy() 将关闭父进程和子进程(例如 IE)。self.destroy 将关闭子进程。我知道这是一篇旧文章,但我认为这些信息可能仍然适用于某人。
IE
def _close(self):
self.master.destroy()
Run Code Online (Sandbox Code Playgroud)