Можно ли при выборе дочернего окна tkinter на первый план вывести и родительское окно?
Пишу программу на Python 3.x с использованием tkinter.
У меня есть главное окно (Tk) и дочернее (Toplevel). Дочернее окно открывается при нажатии на кнопку в главном окне.
Допустим пользователь открыл дочернее окно, после чего перешел в другую программу (браузер, папку и т.п.). После чего снова перешел в дочернее окно моей программы.
Можно ли как-нибудь сделать так, чтобы при выборе дочернего окна на первый план выводилось и родительское окно? Либо как-то отслеживать, что дочернее окно находится в фокусе или выбрано пользователем?
Ниже представлен самый простой пример кода:
from tkinter import *
def open_child_window():
child = Toplevel(root)
child.title('Child')
root = Tk()
root.title('Parent')
button = Button(root, text="Open child window",
command=open_child_window)
button.grid(row=0, column=0)
root.mainloop()
Ответы (1 шт):
Автор решения: n1tr0xs
→ Ссылка
Как вариант, можно сделать так, но я думаю, что есть вариант и получше.
def focus_root(root, child):
root.focus()
child.unbind('<FocusIn>')
child.focus()
child.bind('<Leave>', lambda *args: child.bind('<FocusIn>', lambda *args: focus_root(root, child)))
def open_child_window():
child = Toplevel(root)
child.title('Child')
child.bind('<FocusIn>', lambda *args: focus_root(root, child))