2

例えば:

mywidget->setStyleSheet("QSlider::groove:horizontal { hight: 200px; }");

これをQtCreatorのコンソールに出力します。

Unknown property hight

この場合、エラーが発生していることはプログラマーには明らかですが、外部ファイルとしてスタイルシートを操作している別の人がいる場合はどうでしょうか。その人がメッセージを見るためにQtCreatorにアクセスできない場合はどうなりますか?メッセージをキャプチャして、アプリケーション固有の方法でユーザーに表示するとよいでしょう。これは、stderrをリダイレクトする簡単なタスクですか?それともQt固有ですか?どんな例でもいただければ幸いです。ありがとう。

4

1 に答える 1

1

qInstallMsgHandler()を使用して、Qtのエラーメッセージをキャプチャできます。こちらのドキュメントを確認してください:http://doc.qt.io/archives/qt-4.7/qtglobal.html

ドキュメントの例をc/cします。これらのメッセージをユーザーインターフェイスに表示するように簡単に変更できます。

void myMessageOutput(QtMsgType type, const char *msg)
 {
     switch (type) {
     case QtDebugMsg:
         fprintf(stderr, "Debug: %s\n", msg);
         break;
     case QtWarningMsg:
         fprintf(stderr, "Warning: %s\n", msg);
         break;
     case QtCriticalMsg:
         fprintf(stderr, "Critical: %s\n", msg);
         break;
     case QtFatalMsg:
         fprintf(stderr, "Fatal: %s\n", msg);
         abort();
     }
 }

 int main(int argc, char **argv)
 {
     qInstallMsgHandler(myMessageOutput);
     QApplication app(argc, argv);
     ...
     return app.exec();
 }

注:Qt 5.0では、非推奨になりました。代わりにqInstallMessageHandler()を使用してください。

于 2012-06-09T19:51:05.120 に答える