2

例如:

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

将其打印到 Qt Creator 中的控制台:

Unknown property hight

在这种情况下,程序员很明显错误出在哪里,但如果是另一个人将样式表作为外部文件工作怎么办?如果该人无权访问 Qt Creator 来查看消息怎么办?捕获消息并以某种特定于应用程序的方式将其显示给用户会很好。这是重定向标准错误的简单任务吗?还是更特定于 Qt?我会很感激任何例子。谢谢。

4

1 回答 1

1

您可以使用 qInstallMsgHandler() 来捕获 Qt 的错误消息。在此处查看文档:http: //doc.qt.io/archives/qt-4.7/qtglobal.html

我抄送文档中的示例。您可以轻松修改它以在用户界面中显示这些消息。

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 回答