Qt抑制数据库错误

时间:2012-03-28 13:39:31

标签: c++ qt

我想在控制台应用程序中禁止显示错误文本。当Qt数据库驱动程序遇到任何SQL错误时,将自动打印错误。我想要做的是,显示用户友好的消息,而不显示技术错误。我找不到任何能够解决这个问题的搜索。

1 个答案:

答案 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();
}