Not seeing the output from qInfo()
QT的新手,我导入了其他人制作的项目,它可以在MinGW版本的QT Creator上编译并运行。但是有一个小问题,如果我能看到调试输出,那将更容易诊断。
像" qInfo()<<" debug message";"之类的地方到处都是行,但是当我在调试模式下运行项目时,我在应用程序输出窗口中看不到它们的任何输出应该是。运行该程序后,我只能看到:
Debugging starts
Debugging has finished
我尝试过的
-
确保使用的工具包是安装随附的QT调试器和mingw
-
放置一个ifdef,在main.cpp的顶部带有" #undef QT_NO_INFO_OUTPUT"
-
在所有头文件中添加了include QtDebug
依然没有。
我究竟做错了什么?
请记住,我是Qt的新手,也许这是我说过的一件事,我尝试过没有正确实现:S
谢谢!
qInfo(),qDebug()等都回落到可以覆盖的函数中。 确保在项目内部的任何地方都没有完成此操作(全局搜索" qInstallMessageHandler")。 如果未实现,请自己定义,如下所示:
1 2 3 4 5 6 7 8 | void debugmessagehandler(QtMsgType Type, const QMessageLogContext& Context, const QString &Message) { #ifdef WIN32 OutputDebugString(reinterpret_cast<const wchar_t *>(m.utf16())); #endif } |
并像这样在您的QApplication-object-constructor中注册它(或不久之后)
1 | this->qInstallMessageHandler(debugmessagehandler); |
现在,您需要做的就是确保调试器确实已连接。 你可以打电话
1 | isDebuggerPresent(void); |
从代码中的winbase.h中进行检查,或使用外部程序进行验证。