Подтвердить что ты не робот

Запрос на выход в приложении PyQt

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

Что-то вроде "Вы действительно хотите выйти из программы?"

Я использую PyQt.

4b9b3361

Ответ 1

Да. Вам необходимо переопределить поведение по умолчанию для QWidget, представляющее ваше приложение, чтобы оно не сразу принимало событие. Основная структура, которую вы хотите, выглядит примерно так:

def closeEvent(self, event):

    quit_msg = "Are you sure you want to exit the program?"
    reply = QtGui.QMessageBox.question(self, 'Message', 
                     quit_msg, QtGui.QMessageBox.Yes, QtGui.QMessageBox.No)

    if reply == QtGui.QMessageBox.Yes:
        event.accept()
    else:
        event.ignore()

PyQt tutorial, упомянутый las3rjock, имеет приятное обсуждение этого, Также проверьте ссылки на странице PyQt на Python.org, в частности официальная ссылка, чтобы узнать больше о событиях и как их обрабатывать.