@PCgames2008

Как при закрытии главного окна закрывались все остальные окна?

Я сделал программу при которой если человек нажимает на определённую кнопку то у него открывается ещё одно окно, и что бы при закрытии главного окна у меня не случалось так что вспомогательные окна оставались мне надо написать программу для их закрытия, но я столкнулся с проблемой что я не знаю как это сделать. По этому кому не сложно подскажите как это можно сделать, буду очень благодарен. Название главного окна root, а вспомогательное root2.
  • Вопрос задан
  • 138 просмотров
Решения вопроса 1
Vindicar
@Vindicar
RTFM!
class MainWindow(tk.Tk):
    """Главное окно приложения."""
    def __init__(self):
        """Конструктор вызывается при создании окна"""
        super().__init__()
        self.title('Моё окно')
        self.protocol('WM_DELETE_WINDOW', self.__done)  # прописываем реакцию на закрытие окна
        ...  # тут создаёшь элементы управления и проводишь прочую инициализацию
        # в том числе создаёшь и запоминаешь вспомогательные окна

    def __done(self):
        """Вызовется при попытке закрытия окна"""
        ...  # тут делаешь что тебе нужно при закрытии
        # например, закрываешь вспомогательные окна
        self.destroy()  # если не сделать этот вызов, окно на самом деле не закроется - иногда это нужно

if __name__ == '__main__':
    root = MainWindow()
    root.mainloop()
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@WaterSmith
Android-разработчик. Java, Kotlin
Тебе нужно в главном окне, при открытии "дочерних" окон, запоминать их в списке.
При закрытии дочернего окна удалять его их этого списка. А при закрытии главного окна, идти по списку и закрывать все дочерние окна. Как-то так.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы