gpt4 book ai didi

c++ - 没有看到 qInfo() 的输出

转载 作者:行者123 更新时间:2023-11-28 05:28:42 24 4
gpt4 key购买 nike

QT 新手,我导入了一个别人做的项目,它在 QT Creator 的 MinGW 版本上编译和运行。但是它有一个小问题,如果我能看到调试输出,那会更容易诊断。

像“qInfo() << “debug message”;”这样的行到处都是,但是当我在 Debug模式下运行项目时,我在应用程序输出窗口中看不到它们的任何输出,这是当我明白它应该是。运行程序后我能看到的是:

Debugging starts Debugging has finished

我尝试过的:

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

  • 在 main.cpp 的顶部放置一个带有“#undef QT_NO_INFO_OUTPUT”的 ifdef

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

仍然没有。

我做错了什么?

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

谢谢!

最佳答案

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

关于c++ - 没有看到 qInfo() 的输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40009375/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com