2012-03-28 54 views
2

我想在控制檯應用程序中抑制錯誤文本。 Qt數據庫驅動程序遇到任何SQL錯誤時會自動打印錯誤。我想要做的是,顯示用戶友好的信息,而不會顯示技術錯誤。我沒有發現任何搜索,接近解決這個問題。Qt抑制數據庫錯誤

+0

對於你必須對接受,因爲它確實是最接近的事情,直到它被Qt直接尋址Qt的網站 – 2012-03-28 13:54:02

回答

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(); 
} 
+0

提交Bug報告。 – JadziaMD 2012-03-29 13:24:35