QT的qInstallMessageHandler使用方法例子代码
时间: 2023-04-12 13:00:42 浏览: 69
可以使用以下代码来使用QT的qInstallMessageHandler:
#include <QtCore/QCoreApplication>
#include <QtCore/QDebug>
#include <QtCore/QMessageLogContext>
void myMessageOutput(QtMsgType type, const QMessageLogContext &context, const QString &msg)
{
QByteArray localMsg = msg.toLocal8Bit();
switch (type) {
case QtDebugMsg:
fprintf(stderr, "Debug: %s (%s:%u, %s)\n", localMsg.constData(), context.file, context.line, context.function);
break;
case QtInfoMsg:
fprintf(stderr, "Info: %s (%s:%u, %s)\n", localMsg.constData(), context.file, context.line, context.function);
break;
case QtWarningMsg:
fprintf(stderr, "Warning: %s (%s:%u, %s)\n", localMsg.constData(), context.file, context.line, context.function);
break;
case QtCriticalMsg:
fprintf(stderr, "Critical: %s (%s:%u, %s)\n", localMsg.constData(), context.file, context.line, context.function);
break;
case QtFatalMsg:
fprintf(stderr, "Fatal: %s (%s:%u, %s)\n", localMsg.constData(), context.file, context.line, context.function);
abort();
}
}
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
qInstallMessageHandler(myMessageOutput);
qDebug() << "This is a debug message.";
qInfo() << "This is an info message.";
qWarning() << "This is a warning message.";
qCritical() << "This is a critical message.";
qFatal("This is a fatal message.");
return a.exec();
}