Как сделать действие перед выходом из приложения на pyqt5?

Пользователь

от urban_will , в категории: Python , 8 месяцев назад

Как сделать действие перед выходом из приложения на pyqt5?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

1 ответ

Пользователь

от steve , 8 месяцев назад

@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_())


В данном примере приложение спросит пользователя, действительно ли он хочет выйти при закрытии окна и выполнит действия перед закрытием приложения, если пользователь подтвердит свой выбор.