25

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

「本当にプログラムを終了しますか?」のようなものです。

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

4

1 に答える 1

60

はい。イベントをすぐに受け入れないように、アプリケーションを表す 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()

las3rjockによって言及されたPyQtチュートリアルには、これに関する素晴らしい議論があります。また、Python.org のPyQt ページのリンク、特に公式リファレンスをチェックして、イベントとその処理方法の詳細を確認してください。

于 2009-09-12T11:25:00.297 に答える