没有看到qInfo()的输出

时间:2016-10-12 22:25:25

标签: c++ qt qt-creator qdebug

QT的新手,我已经导入了其他人制作的项目,并且它在QG Creator的MinGW版本上进行编译和运行。但是它有一个小问题,如果我能看到调试输出那么诊断会容易得多。

整个地方都有像" qInfo()<< "调试消息&#34 ;;",但是当我在调试模式下运行项目时,我在应用程序输出窗口中没有看到它们的任何输出,这是我理解它应该是是。运行该程序后我所能看到的只有:

  

调试开始   调试已完成

我尝试过的事情:

  • 确保使用的套件是QT调试器和安装附带的mingw

  • 放一个ifdef,用" #undef QT_NO_INFO_OUTPUT"在main.cpp的顶部

  • 在所有头文件中添加了QtDebug

仍然没有。

我做错了什么?

请记住我是Qt的新手,也许我说的一件事我已经尝试过我没有正确实施:S

谢谢!

1 个答案:

答案 0 :(得分:0)

qInfo()qDebug()等都回退到可以覆盖的函数。确保在项目内的任何地方都没有这样做(全局搜索“qInstallMessageHandler”)。如果没有实现,请自行定义:

void debugmessagehandler(QtMsgType Type, 
    const QMessageLogContext& Context, 
    const QString &Message) 
{
#ifdef WIN32
    OutputDebugString(reinterpret_cast<const wchar_t *>(m.utf16()));
#endif
}

并将其注册到您的QApplication-object-constructor(或之后不久),如此

this->qInstallMessageHandler(debugmessagehandler);

现在您需要做的就是确保调试器实际上是附加的。你可以打电话给

isDebuggerPresent(void);
从你的代码中的winbase.h中检查,或者使用外部程序进行验证。