关于c ++:看不到qInfo()的输出

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中进行检查,或使用外部程序进行验证。