Как я могу отследить нажатие на крестик в PyQt5?

Как в приложении я могу отследить нажатие на крестик (закрытие окна приложения).


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

Автор решения: S. Nick

В основном это делается так:

import sys
from PyQt5.Qt import *


class MyWidget(QWidget):
    def __init__(self):
        super().__init__()

        self.resize(800,600)
        self.setWindowTitle('myapp')

    def closeEvent(self, event):
        # Переопределить colseEvent
        reply = QMessageBox.question\
        (self, 'Вы нажали на крестик',
            "Вы уверены, что хотите уйти?",
             QMessageBox.Yes,
             QMessageBox.No)
        if reply == QMessageBox.Yes:
            event.accept()
        else:
            event.ignore()

if __name__ == '__main__':         
    app    = QApplication(sys.argv)
    w = MyWidget()
    w.show()
    sys.exit(app.exec_())

введите сюда описание изображения

→ Ссылка