当前位置: 首页 > 知识库问答 >
问题:

tkinter提供窗口焦点

充运浩
2023-03-14

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

薄烨
2023-03-14

TopLevel Windows可以使用其deconify()方法激活。

使用基本小部件方法focus\u set()将键盘焦点设置为特定小部件。

终睿
2023-03-14

只需调用小部件的父级上的销毁()

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

我假设您没有销毁父窗口,因此一旦顶级被销毁,焦点将自动返回到上一个打开的窗口。

 类似资料:
  • 我正在用Tkinter编写一个小程序,想打开两个窗口。然后我想在前面放一扇窗户。程序代码: 我做错了什么new.lift?新密码没有出现在前面:(有人知道如何把窗口放在前面,让窗口聚焦吗?

  • 主要内容:创建一个空白窗口,设置窗的位置主窗口控件(window)是一切控件的基础,它好比是一台高速运转的机器,而其他控件则相当于这台机器上的部件,比如齿轮、链条、螺丝等等。由此我们知道,主窗口是一切控件的基础,所有的控件的都需要通过主窗口来显示。 Tkinter 提供了一些关于主窗口对象的常用方法,在本节对这些方法做简单的介绍。 创建一个空白窗口 Tkinter 能够很方便地创建一个空白窗口,示例代码如下: 程序运行结果如下: 图1:

  • 我试图创建一个程序,它有一个tkinter窗口打开,然后当你按下一个按钮,它关闭tkinter窗口,打开一个pyplay窗口。然而,当我点击按钮打开pyplay窗口时,它会打开pyplay窗口,而tkinter窗口保持打开状态。 代码: 我还尝试使用: 我怎样才能解决这个问题?(我正在MacOS 11.1上运行Python 3.7.7)

  • 我写了一个小GUI程序与python在tkinter的窗口。我的窗口必须在全屏游戏窗口的前面。 此刻,我用这句话: 它适用于普通窗口(浏览器,浏览器,...),但如果我启动游戏到全屏模式,我的窗口隐藏在游戏后面。 为什么会发生这种情况?调用游戏可能类似于覆盖我的属性的? 我的问题还有别的解决办法吗?也许可以告诉windows,我的窗口应该在特定窗口(游戏窗口)的前面?

  • 我想初始化一个窗口为最大化,但我不知道如何做。我在Windows7上使用Python3.3和Tkinter 8.6。我想答案就在这里:http://www.tcl.tk/man/Tcl/Tkcmd/wm.htmam.m8但是我不知道如何将它输入到我的python脚本中 此外,我需要得到窗口的宽度和高度(既是最大化的,如果用户重新缩放它之后),但我想我可以自己找到。

  • 问题内容: 我正在尝试通过py2exe创建一个exe。该程序正在使用Tkinter显示类似弹出窗口的窗口。问题是,当我像这样运行安装程序时,一切正常: 但是当我尝试制作一个文件的exe时失败: 实际上,最终exe可以正常运行,但是不会显示任何窗口。我已经阅读过Windows 7上的bundle_files = 1可能存在问题,但我也尝试了bundle_files = 2来达到同样的效果。这是我的m