QT的新手,我已经导入了其他人制作的项目,并且它在QG Creator的MinGW版本上进行编译和运行。但是它有一个小问题,如果我能看到调试输出那么诊断会容易得多。
整个地方都有像" qInfo()<< "调试消息&#34 ;;",但是当我在调试模式下运行项目时,我在应用程序输出窗口中没有看到它们的任何输出,这是我理解它应该是是。运行该程序后我所能看到的只有:
调试开始 调试已完成
我尝试过的事情:
确保使用的套件是QT调试器和安装附带的mingw
放一个ifdef,用" #undef QT_NO_INFO_OUTPUT"在main.cpp的顶部
在所有头文件中添加了QtDebug
仍然没有。
我做错了什么?
请记住我是Qt的新手,也许我说的一件事我已经尝试过我没有正确实施:S
谢谢!
答案 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中检查,或者使用外部程序进行验证。