web-dev-qa-db-ja.com

PyQtアプリケーションの終了時にプロンプ​​トを表示

Pythonで書かれたGUIプログラムを終了するようにユーザーに促す方法はありますか?

「プログラムを終了してもよろしいですか?」のようなものです。

私はPyQtを使用しています。

19
Kirill Titov

はい。アプリケーションを表す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 tutoriallas3rjock が言及していることについては素晴らしい議論があります。また、Python.orgの PyQtページ からのリンク、特に 公式リファレンス をチェックして、イベントとその処理方法の詳細を確認してください。

50
ire_and_curses