1

TopLevelアプリのように説明ウィンドウがあります。今のところ、次のようになります。

def instructions(self):     
    window = Toplevel(takefocus = True)
    window.geometry("200x200")
    window.resizable(0, 0)
    Label(window, text = "WIP").grid()

これはメイン クラスの一部であり、ユーザーがトップ メニューのボタンを押すか、定義したショートカットの F3 を押したときに呼び出すコマンドを定義します。私が必要とするのは、そのウィンドウが一度そこにあるときに、新しいウィンドウを開くのではなく、フォーカスを合わせたいということです。

次のようになります。

if window == exists:
    window.takefocus
else:
     do the upper and create it ....

また、それが破壊されたことを知る必要がある破壊時に、そうでなければ私は一度だけそれを開くことができます

4

1 に答える 1

1

これはうまくいくようです:

def instructions(self):        
    if self.window == None:
        self.window = Toplevel(takefocus = True)
        self.window.focus()
        self.window.geometry("200x200")
        self.window.resizable(0, 0)
        Label(self.window, text = "WIP").grid()
        self.window.protocol("WM_DELETE_WINDOW", self.windowclosed)
    else:
        self.window.focus()       
def windowclosed(self):
    self.window.destroy()
    self.window = None
于 2015-07-27T15:51:35.467 に答える