pyqt5 выполнить перед закрытием

Мне нужно вызвать метод save_changes() перед закрытием программы. Спасибо.


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

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

void QWidget::closeEvent(QCloseEvent *event)

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

По умолчанию событие принимается, а виджет закрывается. Вы можете повторно реализовать эту функцию, чтобы изменить способ ответа виджета на запросы закрытия окна. Например, вы можете предотвратить закрытие окна, вызвав ignore () для всех событий.

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

def save_changes():
    ...

...

    def closeEvent(self, event):
        save_changes()

...
→ Ссылка