1
私はtkinterアプリケーション(tkinter 8.6、python 3.5、ubuntu xenial)で余分なウィンドウをいくつか動かしたいと思います。私はメインアプリケーションから削除ウィンドウプロトコルOKをピックアップすることができますが、追加のwindowsで呼び出されることはありません。ユーザーが 'X'でウィンドウを閉じるようにしたいのですが、これをいつ行うのかを知る必要があります。tkinterプロトコルWM_DELETE_WINDOWが余分なウィンドウで動作しない
私はそれを見ると答えがうつ病になることが予想されます!
この単純なテストアプリケーションを示してい.....
#!/usr/bin/python3
import tkinter
class app(tkinter.Tk):
def __init__(self):
super().__init__()
self.child1 = None
self.geometry('600x400')
w = tkinter.Button(self, command=self.bclick, text='button1')
w.pack()
self.protocol("WM_DELETE_WINDOW", self.appClose)
def bclick(self):
if self.child1 == None:
self.child1 = tkinter.Toplevel()
else:
self.child1.destroy()
self.child1 = None
def appClose(self):
print('main app close')
self.destroy()
class wind1(tkinter.Toplevel):
def __init__(self):
super().__init__()
self.title('window 1')
self.protocol("WM_DELETE_WINDOW", self.window1Close)
self.geometry('600x400')
def window1Close(self):
print("window1Close")
self.destroy()
if __name__=="__main__":
print(tkinter.TkVersion)
app().mainloop()
実際、私はしばらくしてから盲目的に見えます。今私はちょうどなぜ私の元のプログラムが(このミニの例ではなく)失敗するかを考え出すために行ってきました。 – pootle