このページでは

QDebug Class

QDebug クラスは、デバッグ情報用の出力ストリームを提供します。詳細...

ヘッダー: #include <QDebug>
CMake: find_package(Qt6 REQUIRED COMPONENTS Core)
target_link_libraries(mytarget PRIVATE Qt6::Core)
qmake: QT += core
継承元: QIODeviceBase
継承元:

QQmlInfo

パブリック型

enum VerbosityLevel { MinimumVerbosity, DefaultVerbosity, MaximumVerbosity }

パブリック関数

(since 6.9) QDebug(QByteArray *byteArray)
QDebug(QIODevice *device)
QDebug(QString *string)
QDebug(QtMsgType t)
QDebug(const QDebug &o)
~QDebug()
bool autoInsertSpaces() const
QDebug &maybeQuote(char c = '"')
QDebug &maybeSpace()
QDebug &noquote()
QDebug &nospace()
QDebug &quote()
(since 6.7) bool quoteStrings() const
QDebug &resetFormat()
void setAutoInsertSpaces(bool b)
(since 6.7) void setQuoteStrings(bool b)
void setVerbosity(int verbosityLevel)
QDebug &space()
void swap(QDebug &other)
int verbosity() const
QDebug &verbosity(int verbosityLevel)
(since 6.0) QDebug &operator<<(QByteArrayView t)
QDebug &operator<<(QChar t)
QDebug &operator<<(QLatin1StringView t)
QDebug &operator<<(QStringView s)
(since 6.0) QDebug &operator<<(QUtf8StringView s)
(since 6.7) QDebug &operator<<(T i)
(since 6.7) QDebug &operator<<(T i)
QDebug &operator<<(bool t)
QDebug &operator<<(char t)
QDebug &operator<<(char16_t t)
QDebug &operator<<(char32_t t)
QDebug &operator<<(const QByteArray &t)
QDebug &operator<<(const QString &t)
QDebug &operator<<(const char *t)
(since 6.0) QDebug &operator<<(const char16_t *t)
(since 6.5) QDebug &operator<<(const std::basic_string<Char, Args...> &s)
(since 6.7) QDebug &operator<<(const std::optional<T> &opt)
(since 6.9) QDebug &operator<<(const std::tuple<Ts...> &tuple)
QDebug &operator<<(const void *t)
QDebug &operator<<(double t)
QDebug &operator<<(float t)
QDebug &operator<<(int t)
QDebug &operator<<(long t)
QDebug &operator<<(qint64 t)
QDebug &operator<<(quint64 t)
QDebug &operator<<(short t)
(since 6.5) QDebug &operator<<(std::basic_string_view<Char, Args...> s)
(since 6.6) QDebug &operator<<(std::chrono::duration<Rep, Period> duration)
(since 6.7) QDebug &operator<<(std::nullopt_t)
QDebug &operator<<(unsigned int t)
QDebug &operator<<(unsigned long t)
QDebug &operator<<(unsigned short t)
QDebug &operator=(const QDebug &other)

静的パブリックメンバー

(since 6.9) QByteArray toBytes(const T &object)
(since 6.0) QString toString(const T &object)
QDebug operator<<(QDebug debug, const QHash<Key, T> &hash)
QDebug operator<<(QDebug debug, const QList<T> &list)
QDebug operator<<(QDebug debug, const QMap<Key, T> &map)
QDebug operator<<(QDebug debug, const QMultiHash<Key, T> &hash)
QDebug operator<<(QDebug debug, const QMultiMap<Key, T> &map)
QDebug operator<<(QDebug debug, const QSet<T> &set)
(since 6.3) QDebug operator<<(QDebug debug, const QVarLengthArray<T, P> &array)
(since 6.9) QDebug operator<<(QDebug debug, const std::array<T, N> &array)
QDebug operator<<(QDebug debug, const std::list<T, Alloc> &vec)
QDebug operator<<(QDebug debug, const std::map<Key, T, Compare, Alloc> &map)
QDebug operator<<(QDebug debug, const std::multimap<Key, T, Compare, Alloc> &map)
(since 6.9) QDebug operator<<(QDebug debug, const std::multiset<Key, Compare, Alloc> &multiset)
QDebug operator<<(QDebug debug, const std::pair<T1, T2> &pair)
(since 6.9) QDebug operator<<(QDebug debug, const std::set<Key, Compare, Alloc> &set)
(since 6.9) QDebug operator<<(QDebug debug, const std::unordered_map<Key, T, Hash, KeyEqual, Alloc> &map)
(since 6.9) QDebug operator<<(QDebug debug, const std::unordered_set<Key, Hash, KeyEqual, Alloc> &unordered_set)
QDebug operator<<(QDebug debug, const std::vector<T, Alloc> &vec)
(since 6.7) QDebug operator<<(QDebug d, QAnyStringView s)
(since 6.9) QDebug operator<<(QDebug debug, T t)
QDebug operator<<(QDebug debug, const QContiguousCache<T> &cache)
QDebug operator<<(QDebug debug, const QFlags<T> &flags)

マクロ

QDebug qCritical()
QDebug qDebug()
QDebug qFatal()
QDebug qInfo()
QDebug qWarning()

詳細な説明

QDebugは、開発者がデバッグ情報やトレース情報をデバイス、ファイル、文字列、またはコンソールに出力する必要がある場合に使用されます。

基本的な使い方

一般的なケースでは、qDebug() 関数を呼び出して、デバッグ情報の書き出しに使用するデフォルトの QDebug オブジェクトを取得すると便利です。

   qDebug ()<< "Date:" <<QDate::currentDate();
    qDebug() << "Types:" << QString("String") << QChar('x') << QRect(0, 10, 50, 40);
    qDebug() << "Custom coordinate type:" << coordinate;

これは、QtMsgType 値として `QtDebugMsg` を受け取るコンストラクタを使用して、QDebug オブジェクトを生成します。同様に、qInfo()、qWarning()、qCritical()、およびqFatal() 関数も、それぞれのメッセージタイプに対応する QDebug オブジェクトを返します。

また、このクラスは他の状況に対応したいくつかのコンストラクタも提供しており、その中には、ファイルやその他のデバイスにデバッグ情報を書き込むために使用されるQFile や、その他のQIODevice のサブクラスを受け入れるコンストラクタも含まれます。QString を受け入れるコンストラクタは、表示やシリアライズのために文字列に書き込む際に使用されます。

書式設定オプション

QDebug は、出力が読みやすいように書式を整えます。引数の間に自動的にスペースを挿入し、QString 、QByteArray 、QChar の引数には引用符を付加します。

これらのオプションは、space()、nospace()、quote()、noquote() メソッドを使用して調整できます。さらに、QTextStream manipulators を QDebug ストリームにパイプで渡すこともできます。

QDebugStateSaver は、書式設定の変更を現在のスコープに限定します。resetFormat() は、オプションをデフォルト値にリセットします。

カスタム型をストリームに書き込む

多くの標準型は QDebug オブジェクトに出力可能であり、Qt はほとんどの Qt 値型をサポートしています。カスタム型のサポートを追加するには、次の例のようにストリーミング演算子を実装する必要があります。

QDebug operator<<(QDebug debug, const Coordinate &c)
{
    QDebugStateSaver saver(debug);
    debug.nospace() << '(' << c.x() << ", " << c.y() << ')';

    return debug;
}

これについては、「デバッグ手法」および「カスタム Qt 型の作成」のドキュメントで説明されています。

メンバ型のドキュメント

enum QDebug::VerbosityLevel

この列挙型は、詳細度の範囲を表します。

定数値
QDebug::MinimumVerbosity0
QDebug::DefaultVerbosity2
QDebug::MaximumVerbosity7

関連項目: verbosity() およびsetVerbosity()。

メンバ関数のドキュメント

[explicit, since 6.9] QDebug::QDebug(QByteArray *byteArray)

指定されたbyteArray に書き込むデバッグストリームを構築します。

データはUTF-8でエンコードされますが、Windowsなどでは、システムのロケールとは異なる場合があります。

このコンストラクタでインスタンス化されたオブジェクトの場合、データはバッファに格納され、Qt::flush などを使用してストリームがフラッシュされるまでバイト配列には書き込まれません。

この関数は Qt 6.9 で導入されました。

QTextStream manipulatorsも参照してください 。

[explicit] QDebug::QDebug(QIODevice *device)

指定されたdevice に書き込むデバッグストリームを作成します。

[explicit] QDebug::QDebug(QString *string)

指定されたstring に書き込みを行うデバッグストリームを構築します。

[explicit] QDebug::QDebug(QtMsgType t)

メッセージタイプ `t` のハンドラへ書き込みを行うデバッグストリームを構築します。

QDebug::QDebug(const QDebug &o)

別のデバッグストリーム `o` のコピーを作成します。

[noexcept] QDebug::~QDebug()

書き込み待ちのデータをすべてフラッシュし、デバッグストリームを破棄します。

bool QDebug::autoInsertSpaces() const

このQDebug インスタンスが書き込みの間に自動的にスペースを挿入するかどうかを判定し、true を返します。

setAutoInsertSpaces() およびQDebugStateSaverも参照してください 。

QDebug &QDebug::maybeQuote(char c = '"')

引用符の自動挿入に関する現在の設定に応じて、文字「c 」をデバッグストリームに書き込み、そのストリームへの参照を返します。

デフォルトの文字は二重引用符" です。

quote() およびnoquote()も参照してください 。

QDebug &QDebug::maybeSpace()

デバッグストリームにスペース文字を書き込みます。この処理は、スペースの自動挿入に関する現在の設定に応じて行われ、ストリームへの参照を返します。

space() およびnospace()も参照してください 。

QDebug &QDebug::noquote()

QChar 、QString 、およびQByteArray のコンテンツの周囲への引用符の自動挿入を無効にし、ストリームへの参照を返します。

引用符の挿入が無効になっている場合、これらの型は引用符なしで出力され、非表示文字のエスケープも行われません。

quote() およびmaybeQuote()も参照してください 。

QDebug &QDebug::nospace()

スペースの自動挿入を無効にし、ストリームへの参照を返します。

space() およびmaybeSpace()も参照してください 。

QDebug &QDebug::quote()

QChar 、QString 、およびQByteArray のコンテンツを自動的に引用符で囲むようにし、ストリームへの参照を返します。

引用符の付加はデフォルトで有効になっています。

noquote() およびmaybeQuote()も参照してください 。

[noexcept, since 6.7] bool QDebug::quoteStrings() const

このQDebug インスタンスが、ストリームとして渡された文字列をクォート処理する場合(これがデフォルトです)、true を返します。

この関数は Qt 6.7 で導入されました。

QDebugStateSaver 、quote()、noquote()、およびsetQuoteStrings()も参照してください 。

QDebug &QDebug::resetFormat()

ストリームの書式設定オプションをリセットし、構築時の元の状態に戻します。

space() およびquote()も参照してください 。

void QDebug::setAutoInsertSpaces(bool b)

b が true の場合、書き込みの間にスペースが自動的に挿入されます。そうでない場合は、スペースの自動挿入は無効になります。

autoInsertSpaces() およびQDebugStateSaverも参照してください 。

[since 6.7] void QDebug::setQuoteStrings(bool b)

b がtrue の場合、このQDebug インスタンスにストリームで渡される文字列のクォーティングを有効にします。それ以外の場合は、クォーティングは無効になります。

デフォルトでは、文字列はクォートされます。

この関数は Qt 6.7 で導入されました。

QDebugStateSaver 、quote()、noquote()、およびquoteStrings()も参照してください 。

void QDebug::setVerbosity(int verbosityLevel)

ストリームの詳細度をverbosityLevel に設定します。

指定可能な範囲は 0 から 7 です。デフォルト値は 2 です。

verbosity() およびVerbosityLevelも参照してください 。

QDebug &QDebug::space()

デバッグストリームにスペース文字を書き込み、そのストリームへの参照を返します。

このストリームは、今後の書き込みにおいてスペースの自動挿入が有効になっていることを記憶します。

nospace() およびmaybeSpace()も参照してください 。

[noexcept] void QDebug::swap(QDebug &other)

このデバッグストリームインスタンスをother と入れ替えます。この操作は非常に高速で、失敗することはありません。

[static, since 6.9] template <typename T> QByteArray QDebug::toBytes(const T &object)

これは、`object ` を `QDebug::toString(object).toUtf8()` に渡すのと同じですが、より効率的です。

この関数は Qt 6.9 で導入されました。

toString()も参照してください 。

[static, since 6.0] template <typename T> QString QDebug::toString(const T &object)

object を、文字列を操作するQDebug インスタンスにストリームし、その文字列を返します。

この関数は、デバッグのためにオブジェクトのテキスト表現が必要であるが、operator<< を使用できない場合に役立ちます。例えば:

QString str = QDebug::toString(list);

文字列は `nospace()` を使用してストリーム化されます。

この関数はQt 6.0で導入されました。

toBytes()も参照してください 。

int QDebug::verbosity() const

デバッグストリームの詳細度を返します。

ストリーミング演算子は、この値を確認して詳細な出力が望まれるかどうかを判断し、レベルに応じてより多くの情報を出力することができます。値が大きいほど、より多くの情報が求められていることを示します。

許容される範囲は 0 から 7 です。デフォルト値は 2 です。

setVerbosity() およびVerbosityLevelも参照してください 。

QDebug &QDebug::verbosity(int verbosityLevel)

ストリームの詳細度をverbosityLevel に設定し、ストリームへの参照を返します。

許容される範囲は 0 から 7 です。デフォルト値は 2 です。

verbosity()、setVerbosity()、およびVerbosityLevelも参照してください 。

[since 6.0] QDebug &QDebug::operator<<(QByteArrayView t)

観測されたバイト配列のデータ `t` をストリームに書き込み、そのストリームへの参照を返します。

通常、QDebug はデータを引用符で囲んで出力し、制御文字や非US-ASCII文字をCのエスケープシーケンス(\xAB )に変換します。これにより、出力は常に7ビット互換となり、必要に応じて出力から文字列をコピーしてC++ソースコードに貼り付けることができます。

変換を行わずに非表示文字を出力するには、noquote() の機能を有効にしてください。なお、一部のQDebug バックエンドは 8 ビットクリーンではない場合があることに注意してください。

例については、QByteArray のオーバーロードを参照してください。

この関数は Qt 6.0 で導入されました。

QDebug &QDebug::operator<<(QChar t)

文字「t 」をストリームに書き込み、そのストリームへの参照を返します。 通常、QDebug は、制御文字およびUS-ASCII以外の文字を、CのエスケープシーケンスまたはそのUnicode値(\u1234 )として出力します。変換を行わずに非表示文字を出力するには、noquote()機能を有効にしてください。ただし、一部のQDebug バックエンドは8ビットクリーンではない場合があり、t を表現できない可能性があることに注意してください。

QDebug &QDebug::operator<<(QLatin1StringView t)

文字列「t 」をストリームに書き込み、そのストリームへの参照を返します。通常、QDebug は文字列を引用符で囲んで出力し、非表示文字をその Unicode 値に変換します(\u1234 )。

変換を行わずに非表示文字を出力するには、noquote() 機能を有効にしてください。なお、一部のQDebug バックエンドは 8 ビットクリーンではない場合があることに注意してください。

例については、QString のオーバーロードを参照してください。

QDebug &QDebug::operator<<(QStringView s)

文字列ビュー `s` をストリームに書き出し、そのストリームへの参照を返します。通常、QDebug は文字列を引用符で囲んで出力し、非表示文字をその Unicode 値に変換します(\u1234 )。

変換を行わずに非表示文字を出力するには、noquote() の機能を有効にしてください。なお、一部のQDebug バックエンドは 8 ビット対応ではない場合があることに注意してください。

例については、QString のオーバーロードを参照してください。

[since 6.0] QDebug &QDebug::operator<<(QUtf8StringView s)

文字列ビュー `s` をストリームに書き込み、そのストリームへの参照を返します。

通常、QDebug はデータを引用符で囲んで出力し、制御文字や非US-ASCII文字をCのエスケープシーケンス(\xAB )に変換します。これにより、出力は常に7ビット互換となり、必要に応じて出力から文字列をコピーしてC++ソースコードに貼り付けることができます。

変換を行わずに非表示文字を出力するには、noquote() 機能を有効にしてください。なお、一部のQDebug バックエンドは 8 ビットクリーンではない場合があることに注意してください。

この関数は Qt 6.0 で導入されました。

[since 6.7] template <typename T> requires if_qint128<T> QDebug &QDebug::operator<<(T i)

[since 6.7] template <typename T> requires if_quint128<T> QDebug &QDebug::operator<<(T i)

128ビット整数i のテキスト表現を出力します。

注:この演算子は 、Qtが128ビット整数型をサポートしている場合にのみ利用可能です。ビルド環境で128ビット整数型が利用可能であっても、Qtライブラリがそれなしでコンパイルされている場合、この演算子は代わりに警告を出力します。

注:この演算子は関数テンプレートであるため 、その引数に対して暗黙の型変換は行われません。引数は厳密に qint128 または quint128 でなければなりません。

これらの関数は Qt 6.7 で導入されました。

関連項目: QT_SUPPORTS_INT128 。

QDebug &QDebug::operator<<(bool t)

ブール値 `t` をストリームに書き込み、そのストリームへの参照を返します。

QDebug &QDebug::operator<<(char t)

文字列 `t` をストリームに書き込み、そのストリームへの参照を返します。

QDebug &QDebug::operator<<(char16_t t)

UTF-16文字「t 」をストリームに書き込み、そのストリームへの参照を返します。

QDebug &QDebug::operator<<(char32_t t)

UTF-32文字「t 」をストリームに書き込み、そのストリームへの参照を返します。

QDebug &QDebug::operator<<(const QByteArray &t)

バイト配列 `t` をストリームに書き込み、そのストリームへの参照を返します。 通常、QDebug は配列を引用符で囲んで出力し、制御文字や非US-ASCII文字をCのエスケープシーケンス(\xAB )に変換します。これにより、出力は常に7ビット互換となり、必要に応じて出力から文字列をコピーしてC++ソースコードに貼り戻すことができます。

変換なしで非表示文字を出力するには、noquote() 機能を有効にしてください。なお、一部のQDebug バックエンドは 8 ビットクリーンではない場合があることに注意してください。

出力の例:

QByteArray ba;

ba= "a";
qDebug().noquote() << ba;    // prints: a
qDebug() << ba;              // prints: "a"

ba= "\"a\r\n\"";
qDebug() << ba;              // prints: "\"a\r\n\""

ba= "\033";                 // エスケープ文字
qDebug() << ba;              // prints: "\x1B"

ba= "\xC3\xA1";
qDebug() << ba;              // prints: "\xC3\xA1"

ba=QByteArray("a\0b", 3);
qDebug() << ba;               // prints: "\a\x00""b"

QDebug では、C や C++ 言語で文字列リテラルを連結する際と同様の方法で、文字列を一度閉じてから再度開く必要があった点に注目してください。そうすることで、文字「b」が前の16進エスケープシーケンスの一部として解釈されるのを防ぐことができます。

QDebug &QDebug::operator<<(const QString &t)

文字列 `t` をストリームに書き込み、そのストリームへの参照を返します。通常、QDebug は、引用符で囲まれた文字列を出力し、非表示文字をその Unicode 値に変換します(\u1234 )。

変換を行わずに非表示文字を出力するには、noquote() 機能を有効にしてください。なお、一部のQDebug バックエンドは 8 ビット対応ではない場合があることに注意してください。

出力例:

QString s;

s= "a";
qDebug().noquote() << s;    // prints: a
qDebug() << s;              // prints: "a"

s= "\"a\r\n\"";
qDebug() << s;              // prints: "\"a\r\n\""

s= "\033";                 // エスケープ文字
qDebug() << s;              // prints: "\u001B"

s= "\u00AD";               // ソフトハイフン
qDebug() << s;              // prints: "\u00AD"

s= "\u00E1";               // アクサンテギュ付きラテン小文字の A
qDebug() << s;              // prints: "á"

s= "a\u0301";              // "a" の後に「組み合わせ鋭アクセント」が続く
qDebug() << s;              // prints: "á";

s= "\u0430\u0301";         // キリル文字の小文字「A」の後に組み合わせアクセント(アクサンテギュ)が続く
qDebug() << s;              // prints: "а́"

QDebug &QDebug::operator<<(const char *t)

「\0 」で終了するUTF-8文字列(t )をストリームに書き込み、そのストリームへの参照を返します。出力時には、この文字列は引用符で囲まれたりエスケープされたりすることはありません。QDebug は内部でUTF-16としてバッファリングされており、一部のバックエンドを使用するためにロケールのコーデックを用いて8ビットに変換する必要がある場合があり、その結果、文字化け(mojibake)が発生する可能性があることに注意してください。US-ASCII文字列に限定することを推奨します。

[since 6.0] QDebug &QDebug::operator<<(const char16_t *t)

「'\0'」で終了するUTF-16文字列(t )をストリームに書き込み、そのストリームへの参照を返します。出力時に、この文字列は引用符で囲まれたりエスケープされたりすることはありません。QDebug は内部でUTF-16としてバッファリングされるため、一部のバックエンドを使用する際には、ロケールのコーデックを使用して8ビットに変換する必要があり、その結果、文字化け(mojibake)が発生する可能性があることに注意してください。US-ASCII文字列に限定することを推奨します。

この関数は Qt 6.0 で導入されました。

[since 6.5] template <typename Char, typename... Args> QDebug &QDebug::operator<<(const std::basic_string<Char, Args...> &s)

[since 6.5] template <typename Char, typename... Args> QDebug &QDebug::operator<<(std::basic_string_view<Char, Args...> s)

文字列または文字列ビュー `s ` をストリームに書き込み、そのストリームへの参照を返します。

これらの演算子は、Char が次のいずれかである場合にのみ、オーバーロード解決の対象となります。

  • char
  • char8_t(C++20のみ)
  • char16_t
  • char32_t
  • wchar_t

これらの関数は Qt 6.5 で導入されました。

[since 6.7] template <typename T> requires if_streamable<T> QDebug &QDebug::operator<<(const std::optional<T> &opt)

opt (設定されていない場合はnullopt )の内容を、このストリームに書き込みます。T は、QDebug へのストリーミングに対応している必要があります。

この関数は Qt 6.7 で導入されました。

[since 6.9] template <typename... Ts> requires if_streamable<Ts...> QDebug &QDebug::operator<<(const std::tuple<Ts...> &tuple)

tuple の内容をストリームに書き込みます。すべてのTs... は、QDebug へのストリーミングをサポートする必要があります。

この関数は Qt 6.9 で導入されました。

QDebug &QDebug::operator<<(const void *t)

ポインタ `t` をストリームに書き込み、そのストリームへの参照を返します。

QDebug &QDebug::operator<<(double t)

64ビット浮動小数点数 `t` をストリームに書き込み、そのストリームへの参照を返します。

QDebug &QDebug::operator<<(float t)

32ビット浮動小数点数 `t` をストリームに書き込み、そのストリームへの参照を返します。

QDebug &QDebug::operator<<(int t)

符号付き整数 `t` をストリームに書き込み、そのストリームへの参照を返します。

QDebug &QDebug::operator<<(long t)

符号付き長整数 `t` をストリームに書き込み、そのストリームへの参照を返します。

QDebug &QDebug::operator<<(qint64 t)

符号付き64ビット整数 `t` をストリームに書き込み、そのストリームへの参照を返します。

QDebug &QDebug::operator<<(quint64 t)

その後、符号なし64ビット整数 `t` をストリームに書き込み、そのストリームへの参照を返します。

QDebug &QDebug::operator<<(short t)

符号付き短整数 `t` をストリームに書き込み、そのストリームへの参照を返します。

[since 6.6] template <typename Rep, typename Period> QDebug &QDebug::operator<<(std::chrono::duration<Rep, Period> duration)

duration の時間経過をストリームに出力し、そのストリームへの参照を返します。出力される文字列は、C++ 標準ライブラリが `std::ostream` で生成するものと同様に、経過時間の数値表現の後に時間単位が続く形式です。

単位はローカライズされません。

この関数は Qt 6.6 で導入されました。

[since 6.7] QDebug &QDebug::operator<<(std::nullopt_t)

ストリームにnulloptを書き込みます。

この関数は Qt 6.7 で導入されました。

QDebug &QDebug::operator<<(unsigned int t)

t という符号なし整数をストリームに書き込み、そのストリームへの参照を返します。

QDebug &QDebug::operator<<(unsigned long t)

署名なしの長い整数 `t` をストリームに書き込み、そのストリームへの参照を返します。

QDebug &QDebug::operator<<(unsigned short t)

署名なしの短整数 `t` をストリームに書き込み、そのストリームへの参照を返します。

QDebug &QDebug::operator=(const QDebug &other)

other のデバッグストリームをこのストリームに割り当て、このストリームへの参照を返します。

関連する非メンバー

template <typename Key, typename T> QDebug operator<<(QDebug debug, const QHash<Key, T> &hash)

hash の内容をdebug に書き込みます。Key とT の両方が、QDebug へのストリーミングに対応している必要があります。

template <typename T> QDebug operator<<(QDebug debug, const QList<T> &list)

list の内容をdebug に書き込みます。T は、QDebug へのストリーミングに対応している必要があります。

template <typename Key, typename T> QDebug operator<<(QDebug debug, const QMap<Key, T> &map)

map の内容をdebug に書き込みます。Key とT の両方が、QDebug へのストリーミングに対応している必要があります。

template <typename Key, typename T> QDebug operator<<(QDebug debug, const QMultiHash<Key, T> &hash)

hash の内容をdebug に書き込みます。Key とT の両方が、QDebug へのストリーミングに対応している必要があります。

template <typename Key, typename T> QDebug operator<<(QDebug debug, const QMultiMap<Key, T> &map)

map の内容をdebug に書き込みます。Key とT の両方が、QDebug へのストリーミングに対応している必要があります。

template <typename T> QDebug operator<<(QDebug debug, const QSet<T> &set)

set の内容をdebug に書き込みます。T は、QDebug へのストリーミングに対応している必要があります。

[since 6.3] template <typename T, qsizetype P> QDebug operator<<(QDebug debug, const QVarLengthArray<T, P> &array)

array の内容をdebug に書き込みます。T は、QDebug へのストリーミングに対応している必要があります。

この関数は Qt 6.3 で導入されました。

[since 6.9] template <typename T, std::size_t N> QDebug operator<<(QDebug debug, const std::array<T, N> &array)

array の内容をdebug に書き込みます。T は、QDebug へのストリーミングに対応している必要があります。

この関数は Qt 6.9 で導入されました。

template <typename T, typename Alloc> QDebug operator<<(QDebug debug, const std::list<T, Alloc> &vec)

リスト `vec ` の内容を `debug` に書き込みます。`T ` は、`QDebug` へのストリーミングに対応している必要があります。

template < typename Key, typename T, typename Compare, typename Alloc > QDebug operator<<(QDebug debug, const std::map<Key, T, Compare, Alloc> &map)

map の内容をdebug に書き込みます。Key とT の両方が、QDebug へのストリーミングに対応している必要があります。

template < typename Key, typename T, typename Compare, typename Alloc > QDebug operator<<(QDebug debug, const std::multimap<Key, T, Compare, Alloc> &map)

map の内容をdebug に書き込みます。Key とT の両方が、QDebug へのストリーミングに対応している必要があります。

[since 6.9] template < typename Key, typename Compare, typename Alloc > QDebug operator<<(QDebug debug, const std::multiset<Key, Compare, Alloc> &multiset)

multiset の内容をdebug に書き込みます。Key 型は、QDebug へのストリーミングに対応している必要があります。

この関数は Qt 6.9 で導入されました。

template <typename T1, typename T2> QDebug operator<<(QDebug debug, const std::pair<T1, T2> &pair)

pair の内容をdebug に書き込みます。T1 とT2 の両方が、QDebug へのストリーミングに対応している必要があります。

[since 6.9] template < typename Key, typename Compare, typename Alloc > QDebug operator<<(QDebug debug, const std::set<Key, Compare, Alloc> &set)

set の内容をdebug に書き込みます。Key 型は、QDebug へのストリーミングをサポートしている必要があります。

この関数は Qt 6.9 で導入されました。

[since 6.9] template < typename Key, typename T, typename Hash, typename KeyEqual, typename Alloc > QDebug operator<<(QDebug debug, const std::unordered_map<Key, T, Hash, KeyEqual, Alloc> &map)

map の内容をdebug に書き込みます。Key とT の両方が、QDebug へのストリーミングに対応している必要があります。

この関数は Qt 6.9 で導入されました。

[since 6.9] template < typename Key, typename Hash, typename KeyEqual, typename Alloc > QDebug operator<<(QDebug debug, const std::unordered_set<Key, Hash, KeyEqual, Alloc> &unordered_set)

unordered_set の内容をdebug に書き込みます。Key 型は、QDebug へのストリーミングをサポートしている必要があります。

この関数は Qt 6.9 で導入されました。

template <typename T, typename Alloc> QDebug operator<<(QDebug debug, const std::vector<T, Alloc> &vec)

ベクトル `vec ` の内容を `debug` に書き込みます。`T ` は、QDebug へのストリーミングに対応している必要があります。

[since 6.7] QDebug operator<<(QDebug d, QAnyStringView s)

デバッグストリーム `d` に `s ` を出力します。

d.quotedString() がtrue の場合、文字列がどのエンコーディングで表現されているかを示します。単に文字列データのみが必要な場合は、次のようにvisit()を使用します:

s.visit([&d) (auto s) { d << s; });

この関数は Qt 6.7 で導入されました。

QAnyStringView::visit()も参照してください 。

[since 6.9] template <typename T> requires if_ordering_type<T> QDebug operator<<(QDebug debug, T t)

Qt または std の順序値 `t ` を `debug ` オブジェクトに出力します。

制約

T が <QT/Std>::<WEAK/partial/strong>_ordering のいずれかである場合にのみ、オーバーロード解決の対象となります。

この関数は Qt 6.9 で導入されました。

template <typename T> QDebug operator<<(QDebug debug, const QContiguousCache<T> &cache)

cache の内容をdebug に書き込みます。T は、QDebug へのストリーミングに対応している必要があります。

template <typename T> QDebug operator<<(QDebug debug, const QFlags<T> &flags)

flags をdebug に書き込みます。

マクロのドキュメント

QDebug qCritical()

中央メッセージハンドラにクリティカルなメッセージを記録するQDebug オブジェクトを返します。

例:

qCritical() << "Brush:" << myQBrush << "Other value:" << i;

qCritical() の使用は、printf のパラダイムに従う `qCritical(const char *, ...)` の代替手段となります。

なお、QDebug および型固有のストリーム演算子は、デバッグメッセージを読みやすくするためにさまざまな書式設定を追加します。詳細については、formatting options のドキュメントを参照してください。

デバッグの目的上、クリティカルなメッセージが発生した際にプログラムを異常終了させると便利な場合があります。これにより、コアダンプを調査したり、デバッガをアタッチしたりすることが可能になります(qFatal() も参照してください)。これを有効にするには、環境変数QT_FATAL_CRITICALS に数値n を設定します。これにより、プログラムは n 番目のクリティカルメッセージで終了します。 つまり、環境変数が 1 に設定されている場合は最初の呼び出しで終了し、値が 10 の場合は 10 回目の呼び出しで終了します。環境変数に数値以外の値が設定されている場合は、すべて 1 と同等とみなされます。

注:このマクロはスレッドセーフです。

関連項目: qCritical(const char *, ...) およびqCCritical()。

QDebug qDebug()

中央メッセージハンドラにデバッグメッセージを記録するQDebug オブジェクトを返します。

例:

qDebug() << "Brush:" << myQBrush << "Other value:" << i;

qDebug() の使用は、printf のパラダイムに従う `qDebug(const char *, ...)` の代替手段となります。

QDebug および型固有のストリーム演算子は、デバッグメッセージを読みやすくするためにさまざまな書式設定を行うことに注意してください。詳細については、formatting options のドキュメントを参照してください。

コンパイル時に `QT_NO_DEBUG_OUTPUT ` が定義されていた場合、この関数は何も実行しません。

注:このマクロはスレッドセーフです。

qDebug(const char *, ...) およびqCDebug()も参照してください 。

QDebug qFatal()

中央メッセージハンドラに致命的なメッセージを記録するQDebug オブジェクトを返します。

qFatal() の使用は、printf パラダイムに従う `qFatal(const char *, ...)` の代替手段となります。

QDebug および型固有のストリーム演算子は、デバッグメッセージを読みやすくするためにさまざまな書式設定を行う点に注意してください。詳細については、formatting options のドキュメントを参照してください。

デフォルトのメッセージハンドラを使用している場合、返されるストリームはコアダンプを作成するためにアボートします。Windows では、デバッグビルドの場合、この関数は _CRT_ERROR を報告し、デバッガをアプリケーションに接続できるようにします。

注:このマクロはスレッドセーフです。

関連項目: qFatal(const char *, ...) およびqCFatal()。

QDebug qInfo()

中央メッセージハンドラに情報メッセージを記録するQDebug オブジェクトを返します。

例:

qInfo() << "Brush:" << myQBrush << "Other value:" << i;

qInfo() の使用は、printf パラダイムに従う `qInfo(const char *, ...)` の代替手段となります。

なお、QDebug および型固有のストリーム演算子は、デバッグメッセージを読みやすくするためにさまざまな書式設定を追加します。詳細については、formatting options のドキュメントを参照してください。

コンパイル時にQT_NO_INFO_OUTPUT が定義されていた場合、この関数は何も実行しません。

注:このマクロはスレッドセーフです。

qInfo(const char *, ...) およびqCInfo()も参照してください 。

QDebug qWarning()

中央メッセージハンドラに警告メッセージを記録するQDebug オブジェクトを返します。

例:

qWarning() << "Brush:" << myQBrush << "Other value:" << i;

qWarning() の使用は、printf パラダイムに従う `qWarning(const char *, ...)` の代替手段となります。

なお、QDebug および型固有のストリーム演算子は、デバッグメッセージを読みやすくするためにさまざまな書式設定を追加します。詳細については、formatting options のドキュメントを参照してください。

コンパイル時にQT_NO_WARNING_OUTPUT が定義されていた場合、この関数は何もしません。

デバッグの目的上、警告メッセージが表示された際にプログラムを中断させると便利な場合があります。これにより、コアダンプを調査したり、デバッガをアタッチしたりすることが可能になります。qFatal() も参照してください。これを有効にするには、環境変数QT_FATAL_WARNINGS を数値n に設定します。これにより、プログラムは n 番目の警告で終了します。 つまり、環境変数が 1 に設定されている場合は最初の呼び出しで終了し、10 に設定されている場合は 10 回目の呼び出しで終了します。環境変数に数値以外の値が設定されている場合は、すべて 1 として扱われます。

注:このマクロはスレッドセーフです。

関連項目: qWarning(const char *, ...) およびqCWarning()。

© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.