3

我目前在 Windows 7(64 位,Ultimate)上使用 QT Creator 3.2.1 和 Qt 5.3.2(根据我当前项目的要求)。我目前正在开发一个 GUI 项目

尽管已经完成以下操作,但我无法在“应用程序输出”窗口中看到任何 qDebug 消息:

  1. 拥有适当的 QDebug 代码
  2. 在调试模式下构建项目
  3. 使用“CONFIG += openssl-linked”“CONFIG += console”作为构建项目的附加参数
  4. 根本没有定义 QT_NO_DEBUG_OUTPUT
  5. 确认我有一个调试器(在安装 QtCreator 期间安装了来自 MinGW 4.8.2 32 位的 GDB)

我可以知道我还应该尝试什么吗?谢谢!

4

2 回答 2

21

是在 Arch Linux 上为我做的

Qt creator > Tools > Options > Kits,选择你的kit,找到Environment,点击change并添加:

   QT_ASSUME_STDERR_HAS_CONSOLE=1

现在可以在应用程序输出中打印消息,如下所示:

   qDebug() << "User clicked on the button!";

如何启用 qDebug 消息的屏幕截图

而且您应该在程序中看到如下内容:

qDebug输出截图

于 2020-03-31T22:01:16.543 回答
3

我没有收到任何应该 qDebug()在 Qt Creator 中打印的调试消息?这可能是什么原因?

通过自定义日志消息处理程序重新定义 Qt 应用程序中的标准 Qt 调试输出是很常见的,但我们仍然可以处理使调试消息到达调试控制台:

// example for custom message handler
void customLogHandler(QtMsgType type, const QMessageLogContext& context,
                      const QString& msg)
{
   // send the data to log file via the other thread
   emit writeToFile(type, context, msg);

   // now output to debugger console
#ifdef Q_OS_WIN
    OutputDebugString(text.toStdWString().c_str());
#else
    std::cerr << text.toStdString() << std::endl;
#endif
}

void main()
{
   // custom handler start
   qInstallMessageHandler(&customLogHandler);

   // other app initializations
}
于 2017-01-03T18:37:34.163 回答