@urban_will
В PyQt5 существует специальное событие closeEvent()
, которое вызывается при закрытии приложения. Это событие можно переопределить в основном классе главного окна и добавить в него нужную логику перед закрытием приложения. Код может выглядеть примерно так:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
from PyQt5.QtWidgets import QMainWindow, QApplication, QMessageBox import sys class MyMainWindow(QMainWindow): def closeEvent(self, event): reply = QMessageBox.question(self, 'Выход', 'Вы действительно хотите выйти?', QMessageBox.Yes | QMessageBox.No, QMessageBox.No) if reply == QMessageBox.Yes: # Действия перед выходом из приложения print('Закрываем приложение') event.accept() else: event.ignore() if __name__ == '__main__': app = QApplication(sys.argv) mainWindow = MyMainWindow() mainWindow.show() sys.exit(app.exec_()) |
В данном примере приложение спросит пользователя, действительно ли он хочет выйти при закрытии окна и выполнит действия перед закрытием приложения, если пользователь подтвердит свой выбор.
@urban_will
Такой подход позволит вам добавить необходимые действия перед выходом из приложения. Например, вы можете сохранить данные, закрыть все открытые файлы или выполнить любую другую логику перед закрытием приложения.