我想在控制台应用程序中禁止显示错误文本。当Qt数据库驱动程序遇到任何SQL错误时,将自动打印错误。我想要做的是,显示用户友好的消息,而不显示技术错误。我找不到任何能够解决这个问题的搜索。
答案 0 :(得分:1)
您可以使用qInstallMsgHandler()
安装自定义邮件处理程序,但这是应用程序范围。我不确定这是否会给你足够的控制权。
示例:
#include <QtCore>
void myMessageOutput(QtMsgType type, const char *msg) {
switch (type) {
case QtDebugMsg:
case QtCriticalMsg:
fprintf(stderr, "%s\n", msg);
break;
case QtWarningMsg:
fprintf(stderr, "A kinder, gentler, warning message.\n", msg);
break;
case QtFatalMsg:
fprintf(stderr, "%s\n", msg);
abort();
}
}
int main(int argc, char **argv) {
qInstallMsgHandler(myMessageOutput);
QCoreApplication app(argc, argv);
qDebug("A debug message");
qCritical("A critical message");
qWarning("REALLY TECHNICAL WARNING THAT SCARES SMALL CHILDREN");
qFatal("A fatal message");
return app.exec();
}