QtCreator:未显示qDebug消息

时间:2017-01-02 10:58:02

标签: qt qt-creator qdebug

我目前在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)
  6. 我可以知道还应该尝试什么?谢谢!

2 个答案:

答案 0 :(得分:11)

This在Arch Linux上为我完成了

Qt creator>工具>选项>套件,选择套件,找到环境,单击更改并添加:

   QT_ASSUME_STDERR_HAS_CONSOLE=1

现在可以在应用程序输出中打印消息 像这样:

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

Screenshot on how to enable qDebug message

然后您应该会在程序中看到如下内容:

qDebug output screenshot

答案 1 :(得分:2)

  

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

通常通过自定义日志消息处理程序重新定义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
}