tkinter 如何让窗口获得焦点

1 投票
2 回答
2471 浏览
提问于 2025-04-17 17:28

我有一个用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

2 个回答

0

一个 顶层窗口 可以通过它的 deiconify() 方法来激活。

使用基本的 控件 方法 focus_set() 可以将键盘焦点设置到特定的控件上。

1

只需要在这个小部件的父窗口上调用 destroy() 方法就可以了。

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

我想你并没有销毁父窗口,所以一旦这个新窗口被关闭,焦点会自动回到之前打开的窗口上。

撰写回答