Python 检查窗口是否在后台Tkinter

Python 检查窗口是否在后台Tkinter,python,events,tkinter,background,window,Python,Events,Tkinter,Background,Window,因此,我正在尝试在tkinter上制作一个应用程序。我刚刚开始学习这个模块是如何工作的 在我的应用程序中,我有一个根窗口和一个子窗口(顶层),我将子窗口设置为始终位于顶部。当我最小化我的根窗口时,子窗口也会最小化,因为我已经定义了那个条件。我的问题是当我选择其他窗口时。当我这样做时,子窗口仍然保持在顶部,我想知道是否有办法知道我的根窗口是否在后台,也就是说:我目前没有处理它(比如root.winfo…函数) 我可以提供其他例子,因为我觉得我没有以你们理解的方式解释我的问题。 我也可以提供我的代码

因此,我正在尝试在
tkinter
上制作一个应用程序。我刚刚开始学习这个模块是如何工作的

在我的应用程序中,我有一个根窗口和一个子窗口(顶层),我将子窗口设置为始终位于顶部。当我最小化我的根窗口时,子窗口也会最小化,因为我已经定义了那个条件。我的问题是当我选择其他窗口时。当我这样做时,子窗口仍然保持在顶部,我想知道是否有办法知道我的根窗口是否在后台,也就是说:我目前没有处理它(比如
root.winfo…
函数)

我可以提供其他例子,因为我觉得我没有以你们理解的方式解释我的问题。 我也可以提供我的代码,但我认为现在这是必要的

问题:检查窗口是否在后台

使用
tk.self.winfou containing(…
您可以确定一个小部件,这里是
root
窗口,是否显示在顶层。 在此示例中,给定窗口的中心用作可见点

注意:移动窗口时,结果可能是
False


参考: -

返回给定位置的小部件,或不返回


使用Python:3.5-“Tcl版本”:8.6“TkVersion”:8.6-Linux测试 注意:已确认,可在Windows上运行。
可能无法在MACOS上运行

问题:检查窗口是否在后台

使用
tk.self.winfou containing(…
您可以确定一个小部件,这里是
root
窗口,是否显示在顶层。 在此示例中,给定窗口的中心用作可见点

注意:移动窗口时,结果可能是
False


参考: -

返回给定位置的小部件,或不返回


使用Python:3.5-“Tcl版本”:8.6“TkVersion”:8.6-Linux测试 注意:已确认,可在Windows上运行。

可能无法在MACOS上工作。

是否要检查主窗口是否已图标化?是否要检查主窗口是否已图标化?
import tkinter as tk


class App(tk.Tk):
    def __init__(self):
        super().__init__()

        self.is_toplevel()

    def is_toplevel(self):
        width, height, x, y = self.winfo_width(), self.winfo_height(), \
                              self.winfo_rootx(), self.winfo_rooty()

        if (width, height, x, y) != (1, 1, 0, 0):
            is_toplevel = self.winfo_containing(x + (width // 2),
                                                y + (height // 2)
                                                ) is not None

            print('is_toplevel: {}'.format(is_toplevel))

        self.after(2000, self.is_toplevel)


if __name__ == "__main__":
    App().mainloop()