qDebug()没在应用程序输出那里打印
时间: 2024-02-24 11:54:26 浏览: 262
可能是因为以下原因导致qDebug()没有在应用程序输出中打印:
1. 没有开启Qt Debug输出。可以在.pro文件中添加`CONFIG += console`来开启Qt Debug输出,或者在Qt Creator的“项目->构建设置->构建步骤->qmake”中添加`CONFIG += console`。
2. 在代码中没有调用`qInstallMessageHandler()`函数将qDebug()输出到应用程序输出中。可以在main函数中添加以下代码来实现:
```
void myMessageOutput(QtMsgType type, const QMessageLogContext& context, const QString& msg)
{
Q_UNUSED(context);
QByteArray localMsg = msg.toLocal8Bit();
switch (type) {
case QtDebugMsg:
fprintf(stderr, "Debug: %s\n", localMsg.constData());
break;
case QtInfoMsg:
fprintf(stderr, "Info: %s\n", localMsg.constData());
break;
case QtWarningMsg:
fprintf(stderr, "Warning: %s\n", localMsg.constData());
break;
case QtCriticalMsg:
fprintf(stderr, "Critical: %s\n", localMsg.constData());
break;
case QtFatalMsg:
fprintf(stderr, "Fatal: %s\n", localMsg.constData());
abort();
}
}
int main(int argc, char* argv[])
{
QCoreApplication a(argc, argv);
qInstallMessageHandler(myMessageOutput);
...
return a.exec();
}
```
这样可以将所有类型的Qt消息输出到应用程序输出中。
阅读全文