gpt4 book ai didi

python - 检查窗口是否在后台 Tkinter

转载 作者:太空宇宙 更新时间:2023-11-03 19:40:43 25 4
gpt4 key购买 nike

所以,我正在尝试在 tkinter 上制作一个应用程序。我刚刚开始学习这个模块的工作原理。

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

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

最佳答案

Question: Check if window is in background

使用tk.self.winfo_containing(...,您可以确定一个小部件(此处为root窗口)是否显示在顶级。在此示例中,给定窗口的中心用作可见点。

注意:当您移动窗口时,结果可能为False

<小时/>

引用:-Tkinter.Widget.winfo_containing-method

Returns the widget at the given position, or None

<小时/>
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()

使用 Python 进行测试:3.5 - 'TclVersion':8.6 'TkVersion':8.6 - Linux
注意:已确认,适用于Windows
可能不适用于 MACOS

关于python - 检查窗口是否在后台 Tkinter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60442386/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com