使用QT时如何打印到控制台

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (41)

我用Qt4和C++来制作计算机图形学中的一些程序。我需要能够在运行时在我的控制台中打印一些变量,而不是调试,但是cout即使我添加了库也不起作用。有办法吗?

提问于
用户回答回答于

如果它足够好打印到stderr,可以使用最初用于调试的下列流:

//qInfo is qt5.5+ only.
qInfo() << "C++ Style Info Message";
qInfo( "C Style Info Message" );

qDebug() << "C++ Style Debug Message";
qDebug( "C Style Debug Message" );

qWarning() << "C++ Style Warning Message";
qWarning( "C Style Warning Message" );

qCritical() << "C++ Style Critical Error Message";
qCritical( "C Style Critical Error Message" );

// qFatal does not have a C++ style method.
qFatal( "C Style Fatal Error Message" );

尽管如注释中所指出的,请记住,在以下情况下将删除qDebug消息QT_NO_DEBUG_OUTPUT被定义

如果需要stdout,可以尝试这样的方法(正如凯尔·斯特兰德指出的):

QTextStream& qStdOut()
{
    static QTextStream ts( stdout );
    return ts;
}

然后,可以按以下方式调用:

qStdOut() << "std out!";
用户回答回答于

#include <QTextStream>

QTextStream out(stdout);
foreach(QString x, strings)
    out << x << endl;

扫码关注云+社区