Вопрос : Проверьте, находится ли окно в фоновом режиме
Используя tk.self.winfo_containing(...
, вы можете определить, отображается ли виджет, здесь окно root
, в Верхний уровень . В этом примере центр данного окна используется как видимая точка.
Примечание : при перемещении окна результат может быть False
.
Ссылка : - Tkinter.Widget.winfo_conisting-method
Возвращает виджет в заданной позиции или Нет
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 .