Подскажите при выходе в приложение PyQt - PullRequest
19 голосов
/ 12 сентября 2009

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

Что-то вроде "Вы уверены, что хотите выйти из программы?"

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

1 Ответ

50 голосов
/ 12 сентября 2009

Да. Вам нужно переопределить поведение закрытия по умолчанию 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 , упомянутый las3rjock , хорошо обсуждает это. Также ознакомьтесь со ссылками со страницы PyQt на Python.org, в частности с официальной ссылкой , чтобы узнать больше о событиях и о том, как с ними обращаться.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...