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()