1

私は tkinter python 2.x プログラムを持っています。画面にいくつかのウィンドウが表示されます。ボタンを使用して別のウィンドウに移動していますが、ウィンドウを閉じて、現在開いているウィンドウに再びフォーカスするのに苦労しています。新しいウィンドウを問題なく開くことができます。

#code for main window
def frmMain():
  app = Tk()
  app.title("TWS: XML Options")
  app.geometry("200x100")
  bn1 = Button(app,text="Add", command=frmAdd)
  bn1.grid(row = 2,column = 2, stick = W)
  bn2 = Button(app,text="Edit", command=frmEdit)
  bn2.grid(row = 2,column = 3, stick = W)
  bn3 = Button(app,text="Delete", command=frmDelete)
  bn3.grid(row = 2,column = 4, stick = W)
  bn4 = Button(app,text="Back",command=frmMenu)
  bn4.grid(row = 3,column = 2, stick = W)
  app.mainloop()

#code for button on sub window
....
bn1 = Button(app,text="Back", command=back)
...

def back():
   #Code to close current window and reopen frmMain
4

2 に答える 2

1

destroy()ウィジェットの親を呼び出すだけです。

bn1 = Button(app, text="Back", command=app.destroy)

親ウィンドウを破棄していないと思うので、トップレベルが破棄されると、フォーカスは以前に開いていたウィンドウに自動的に戻ります。

于 2013-02-28T19:24:56.633 に答える
0

トップレベル ウィンドウは、そのdeiconify()メソッド を使用してアクティブ化できます。

基本的なWidgetメソッドfocus_set()を使用して、キーボード フォーカスを特定のウィジェットに設定します。

于 2013-03-05T05:04:25.993 に答える