【问题标题】:Python, tkinter - check to see if a window is openPython,tkinter - 检查窗口是否打开
【发布时间】:2013-06-26 15:21:18
【问题描述】:

提醒各位好人:我对 python 比较陌生,正在尝试编写我的第一个程序。

我的问题:
我有一个主窗口(使用 tkinter)和其他几个窗口。我们称它们为 subWindow 1、2 和 3
-> 所有顶部都有一个菜单栏,还有一个导航选项卡到其他窗口。

如果主窗口和子窗口 1 和 2,焦点在子窗口 2 上,我使用菜单栏导航回子窗口 1,它只会打开一个新的窗口实例。

问题:
有没有办法检查:
如果子窗口 1 已经打开:
- 将子窗口 1 移到前面(设置焦点)
其他:
- 打开子窗口 1 的新实例

提前致谢


编辑!
感谢 Christian Careaga 的回答,但 focus_set() 对我不起作用。
得到它的工作与一个简单的尝试/除了虽然:

try:  
    root.deiconify()  
except:  
    openWindow()

【问题讨论】:

    标签: python window focus tkinter


    【解决方案1】:

    这是一种判断窗口是否正在运行的方法:

    if 'normal' == root.state():
        print 'running'
    

    root.state() 获取窗口的状态,如果窗口状态正常,则表示它正在运行

    所以在主窗口中,您可以使用此条件来检查子窗口是否打开 如果是,您可以使用focus_set() 使该窗口聚焦

    【讨论】:

    • 我们是否还可以知道,如果我们在 tkinter 窗口中有绘图选项,并且我们想知道任何 matlotlib 进程是否正在运行,但我的 matplotlib 绘图在 tinter 中没有被取消,它只是通过一个按钮调用在我的 tkinter 窗口中有没有