10

Qt 4.8.x を使用しているため、connectQt5 から新しいインターフェイスにアクセスできませんが、シグナルまたはスロット名のつづりを間違えたためにシグナル/スロット接続が失敗した場合に、より適切にアラートを受け取りたいです。

現在、Qt が行うことは、接続が試行されたときにエラー メッセージを吐き出すことだけです。ただし、私のプログラムには多くの出力がstdoutあるため、これらのエラーを見逃すことがあります。connect ステートメントが失敗したときに、assert、segfault、またはその他の方法でアプリケーションを強制的にクラッシュさせることはできますか?

4

2 に答える 2

9

はい:QT_FATAL_WARNINGS環境変数をゼロ以外の値に設定します。

Qt Creator での開発中にこれを行うには、[プロジェクト] ペインに移動して [実行] をクリックし、[実行環境] で [詳細] をクリックしてから [追加] をクリックします。

編集して追加: もちろん、戻り値をチェックし、false を返す場合は assert() を行う QObject::connect のラッパーを実装することもできます。

于 2013-06-27T20:50:56.823 に答える
4

この質問の解決策の少なくとも 1 つだと思います: Qt GUI app: warning if QObject::connect() failed? あなたが必要とすることをします。

特に、 を使用QErrorMessage::qtHandlerすることで、これらの警告をインターセプトし、必要なことを行うことができるはずです。

于 2013-06-27T20:52:05.153 に答える