5
MainWindows::MainWindow(QWidget *parent) :
                 QMainWindow(parent) , ui(new Ui::MainWindow) {
      ui->setupUi(this);

      some initialization code here
}

初期化に失敗した場合、アプリケーション全体を終了したいのですが、どうすればよいですか?

ありがとう。

4

5 に答える 5

6

どうexit()ですか?

MainWindows::MainWindow(QWidget *parent) :
                 QMainWindow(parent) , ui(new Ui::MainWindow) {
      ui->setupUi(this);

      //some initialization code here
      if (something_failed)
      {
          exit(1); // terminate process
      }
}
于 2012-04-06T02:19:51.863 に答える
2

これは私のために働く:

QMetaObject::invokeMethod(this, "close", Qt::QueuedConnection);
于 2013-03-28T16:09:25.160 に答える
1

assert メソッドを使用して、条件を自動的にチェックするプログラムを終了できます。条件が false になると、終了した行を示してプログラムを終了します。構文は次のとおりです。

Q_ASSERT(条件);

于 2012-04-06T08:10:38.360 に答える
0

初期化に失敗した場合、アプリケーション全体を終了したいのですが、どうすればよいですか?

コンストラクターから例外をスローします。デフォルトでは、未処理の例外はアプリケーション全体を終了します。QCoreApplication::quit を呼び出すこともできますが、例外をスローして別の場所でキャッチし、本当に問題が発生した場合は QCoreAPplication::quit を使用することをお勧めします。

たとえば、ファイルを書き込んでいる場合、単純に exit を呼び出すと、データが失われる可能性があります。

于 2012-04-06T06:36:58.280 に答える