1. ホーム
  2. c++

[解決済み] Qtを使用しているときにコンソールに印刷する方法

2022-04-20 02:31:38

質問

Qt4とC++を使用して、CGのプログラムを作っています。デバッグではなく、実行時にコンソールにいくつかの変数を表示できるようにする必要があります。 cout は、ライブラリを追加しても動かないようです。何か方法はないでしょうか?

解決方法を教えてください。

にプリントすれば良いのであれば stderr を使えば、本来はデバッグ用の以下のようなストリームを使うことができます。

#include<QDebug>

//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 が定義されています。

もし標準出力が必要なら、次のようなことを試してみてください (Kyle Strand が指摘しています)。

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

そうすると、次のように呼び出すことができます。

qStdOut() << "std out!";