PyQt5. При закрытии дочернего окна, закрывается основное, когда свернуто в трей

Программирую на Python с использованием PyQt5. Есть у меня два класса. В основном классе для обработки закрытия окна объявлены такие методы:

def trayIconActivated(self, reason):
    if reason == QSystemTrayIcon.Trigger:
        if self.isHidden():
            self.show()
        else:
            self.hide()


def closeEvent(self, event):
    event.ignore()
    self.hide()

В конструкторе добавил это:

self.tray_icon = QSystemTrayIcon(self)
self.tray_icon.setIcon(QIcon("res\\icon.ico"))
self.tray_menu = QMenu()
show_action = QAction("Показать", self)
show_action.triggered.connect(self.show)
self.tray_menu.addAction(show_action)
exit_action = QAction("Выход", self)
exit_action.triggered.connect(app.quit)
self.tray_menu.addAction(exit_action)
self.tray_icon.setContextMenu(self.tray_menu)
self.tray_icon.show()
self.tray_icon.activated.connect(self.trayIconActivated)

Повторю, это в основном классе и к другому отношения не имеет. При определенных событиях у меня открывается окно - экземпляр другого класса. Но есть одна проблема, найти решение которой не смог. Если основное окно свернуто в трей, то закрытие дочерней формы, в которой вообще не реализован выход, завершается работа всего приложения. Добавлял это в closeEvent, но оно никак не влияет:

if self.tray_icon.isVisible():
        event.ignore()
        self.hide()
    else:
        event.accept()

Есть ли предположения, из-за чего происходит не преднамеренный выход из программы?


Ответы (0 шт):