Как закрыть все окна Toplevel?
Есть программа и она сворачивается в трей. Встретился с проблемой - основное окно сворачивается в трей, а окна Toplevel остаются открыты. Можно ли их все одним махом закрыть?
Ответы (1 шт):
Автор решения: Victor VosMottor
→ Ссылка
Можно пройтись по всем дочерним виджетам, там будут и топлевелы, и попробовать каждый свернуть. Тот который сворачевается — топлевел, если ошибка — проигнорировать:
from tkinter import *
root = Tk()
...
def minimize_all():
root.wm_state('iconic')
for i in root.winfo_children():
try:
i.wm_state('iconic') # We suppose that `i` (each child of the root) is toplevel and try to minimize it...
except:
pass # But sometime it may be a button or a label or something so we can't and we just ignore such exceptions.
...