如何捕获在Qt C++中调用setStyleSheet()时打印的错误
How do I capture errors printed when calling setStyleSheet() in Qt C++?
例如:
mywidget->setStyleSheet("QSlider::groove:horizontal { hight: 200px; }");
将其打印到Qt Creator中的控制台:
Unknown property hight
在这种情况下,程序员很明显错误在哪里,但是如果是另一个人将样式表作为外部文件处理怎么办?如果该人无法访问Qt Creator以查看消息怎么办?最好捕获消息并以某种特定于应用程序的方式向用户显示它。这是重定向标准传输的简单任务吗?还是更特定于Qt?我将不胜感激任何例子。谢谢。
您可以使用 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: %sn", msg);
break;
case QtWarningMsg:
fprintf(stderr, "Warning: %sn", msg);
break;
case QtCriticalMsg:
fprintf(stderr, "Critical: %sn", msg);
break;
case QtFatalMsg:
fprintf(stderr, "Fatal: %sn", msg);
abort();
}
}
int main(int argc, char **argv)
{
qInstallMsgHandler(myMessageOutput);
QApplication app(argc, argv);
...
return app.exec();
}
注意:在Qt 5.0中,它已被弃用。请改用 qInstallMessageHandler()。
相关文章:
- 为什么没有打印错误消息
- 插入排序打印错误的输出
- 当我输入一个字母时,cin 输入(输入是一个 int),而不是打印错误一次,它打印正确一次,然后在循环的其余部分打印 i
- 使用使用运算符<<并打印错误值 c++ 的类进行编程
- cLion & cMake 不调试/打印错误
- 如何使用适用于 Lua 的 C API 在控制台中打印错误
- 为什么我的代码打印错误的密文
- 声明数组和打印[错误?]
- 为什么在这种情况下打印错误
- q调试打印错误的数字
- 阿姆斯特朗数字打印错误
- C++ 链表打印错误
- 长双精度在 MinGW 上打印错误
- C++ <ctime> 打印错误的日期
- 用"fprintf"打印错误后调用"getchar()"有什么意义?
- C++类型包装器 printf 打印错误的浮点值
- 如何让犰狳函数在反转奇异矩阵时不打印错误
- 缩短的数组打印错误的结果
- 打印错误的链表c++
- cout 中的打印错误