8
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()

仕事の近くで関数を作成するにはどうすればよいですか?

4

2 に答える 2

11
GameBoard()

の新しいインスタンスを作成しますGameBoard。したがって:

GameBoard().destroy()

新しいインスタンスを作成し、それを呼び出しますdestroy()が、既存のインスタンスには影響しません。

_close()メソッドで現在のインスタンスにアクセスするには、次の方法を使用しますself

def _close(self):
    self.destroy()

ただし、これはフレーム (およびボタンなどの子ウィンドウ) のみを破棄し、最上位のウィンドウ (マスター) は破棄しません。

UI を完全に閉じるには、self.master.destroy()または単にself.quit()次のように呼び出します。

def _close(self):
    self.quit()
于 2012-11-30T18:58:46.583 に答える