Sur cette page

QDebug Class

La classe QDebug fournit un flux de sortie pour les informations de débogage. Plus d'informations...

En-tête : #include <QDebug>
CMake : find_package(Qt6 REQUIRED COMPONENTS Core)
target_link_libraries(mytarget PRIVATE Qt6::Core)
qmake : QT += core
Hérite : QIODeviceBase
Héritée par :

QQmlInfo

Types publics

enum VerbosityLevel { MinimumVerbosity, DefaultVerbosity, MaximumVerbosity }

Fonctions publiques

(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)

Membres publics statiques

(since 6.9) QByteArray toBytes(const T &object)
(since 6.0) QString toString(const T &object)
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.9) QDebug operator<<(QDebug debug, T t)
QDebug operator<<(QDebug debug, const QContiguousCache<T> &cache)
QDebug operator<<(QDebug debug, const QFlags<T> &flags)
QDebug operator<<(QDebug debug, const QHash<Key, T> &hash)

Macros

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

Description détaillée

QDebug est utilisé chaque fois que le développeur a besoin d'écrire des informations de débogage ou de traçage sur un périphérique, un fichier, une chaîne de caractères ou une console.

Utilisation de base

Dans le cas courant, il est utile d'appeler la fonction qDebug() pour obtenir un objet QDebug par défaut à utiliser pour écrire des informations de débogage.

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

Cela permet de construire un objet QDebug à l'aide du constructeur qui accepte une valeur QtMsgType de QtDebugMsg. De même, les fonctions qInfo(), qWarning(), qCritical() et qFatal() renvoient également des objets QDebug pour les types de messages correspondants.

La classe fournit également plusieurs constructeurs pour d'autres situations, y compris un constructeur qui accepte un QFile ou toute autre sous-classe QIODevice utilisée pour écrire des informations de débogage dans des fichiers et d'autres périphériques. Le constructeur qui accepte un QString est utilisé pour écrire dans une chaîne de caractères à des fins d'affichage ou de sérialisation.

Options de formatage

QDebug formate la sortie pour qu'elle soit facilement lisible. Il ajoute automatiquement des espaces entre les arguments et des guillemets autour des arguments QString, QByteArray, QChar.

Vous pouvez modifier ces options grâce aux méthodes space(), nospace() et quote(), noquote(). De plus, QTextStream manipulators peut être envoyé dans un flux QDebug.

QDebugStateSaver limite les changements de formatage à la portée actuelle. resetFormat() rétablit les options par défaut.

Écrire des types personnalisés dans un flux

De nombreux types standard peuvent être écrits dans des objets QDebug, et Qt fournit un support pour la plupart des types de valeurs Qt. Pour ajouter le support des types personnalisés, vous devez implémenter un opérateur de flux, comme dans l'exemple suivant :

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

    return debug;
}

Ceci est décrit dans les documents Techniques de débogage et Création de types Qt personnalisés.

Documentation sur les types de membres

enum QDebug::VerbosityLevel

Cette énumération décrit la gamme des niveaux de verbosité.

ConstanteValeur
QDebug::MinimumVerbosity0
QDebug::DefaultVerbosity2
QDebug::MaximumVerbosity7

Voir aussi verbosity() et setVerbosity().

Documentation des fonctions membres

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

Construit un flux de débogage qui écrit sur le site byteArray.

Les données sont encodées en UTF-8, ce qui peut être différent de la locale du système, par exemple sous Windows.

Avec les objets instanciés avec ce constructeur, les données peuvent être mises en mémoire tampon et ne seront pas écrites dans le tableau d'octets jusqu'à ce que le flux soit vidé, par exemple, en utilisant Qt::flush.

Cette fonction a été introduite dans Qt 6.9.

Voir aussi QTextStream manipulators.

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

Construit un flux de débogage qui écrit sur le site device.

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

Construit un flux de débogage qui écrit sur le site string.

[explicit] QDebug::QDebug(QtMsgType t)

Construit un flux de débogage qui écrit au gestionnaire pour le type de message t.

QDebug::QDebug(const QDebug &o)

Construit une copie de l'autre flux de débogage o.

[noexcept] QDebug::~QDebug()

Vide toutes les données en attente d'écriture et détruit le flux de débogage.

bool QDebug::autoInsertSpaces() const

Renvoie true si cette instance de QDebug insère automatiquement des espaces entre les écritures.

Voir aussi setAutoInsertSpaces() et QDebugStateSaver.

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

Écrit un caractère c dans le flux de débogage, en fonction de la configuration actuelle de l'insertion automatique des guillemets, et renvoie une référence au flux.

Le caractère par défaut est un guillemet double ".

Voir également quote() et noquote().

QDebug &QDebug::maybeSpace()

Écrit un caractère d'espacement dans le flux de débogage, en fonction du paramètre actuel d'insertion automatique des espaces, et renvoie une référence au flux.

Voir aussi space() et nospace().

QDebug &QDebug::noquote()

Désactive l'insertion automatique de caractères de citation autour des contenus de QChar, QString et QByteArray et renvoie une référence au flux.

Lorsque l'insertion de guillemets est désactivée, ces types sont imprimés sans caractères de citation et sans échappement des caractères non imprimables.

Voir également quote() et maybeQuote().

QDebug &QDebug::nospace()

Désactive l'insertion automatique d'espaces et renvoie une référence au flux.

Voir aussi space() et maybeSpace().

QDebug &QDebug::quote()

Active l'insertion automatique de caractères de citation autour des contenus de QChar, QString et QByteArray et renvoie une référence au flux.

L'insertion de guillemets est activée par défaut.

Voir aussi noquote() et maybeQuote().

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

Renvoie true si cette instance de QDebug citera les chaînes de caractères qui lui sont transmises (ce qui est le cas par défaut).

Cette fonction a été introduite dans Qt 6.7.

Voir aussi QDebugStateSaver, quote(), noquote(), et setQuoteStrings().

QDebug &QDebug::resetFormat()

Réinitialise les options de formatage du flux, le ramenant à son état initial.

Voir aussi space() et quote().

void QDebug::setAutoInsertSpaces(bool b)

Active l'insertion automatique d'espaces entre les écritures si b est vrai ; sinon, l'insertion automatique d'espaces est désactivée.

Voir aussi autoInsertSpaces() et QDebugStateSaver.

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

Active la mise entre guillemets des chaînes de caractères transmises à cette instance QDebug si b est true; sinon, la mise entre guillemets est désactivée.

Par défaut, les chaînes de caractères ne sont pas citées.

Cette fonction a été introduite dans Qt 6.7.

Voir aussi QDebugStateSaver, quote(), noquote(), et quoteStrings().

void QDebug::setVerbosity(int verbosityLevel)

Définit la verbosité du flux à verbosityLevel.

La plage autorisée est comprise entre 0 et 7. La valeur par défaut est 2.

Voir également verbosity() et VerbosityLevel.

QDebug &QDebug::space()

Écrit un caractère espace dans le flux de débogage et renvoie une référence au flux.

Le flux se souvient que l'insertion automatique d'espaces est activée pour les écritures futures.

Voir aussi nospace() et maybeSpace().

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

Remplace cette instance de flux de débogage par other. Cette opération est très rapide et n'échoue jamais.

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

Cela équivaut à passer object à QDebug::toString(object).toUtf8(), mais c'est plus efficace.

Cette fonction a été introduite dans Qt 6.9.

Voir aussi toString().

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

Stream object dans une instance QDebug qui opère sur une chaîne de caractères, puis renvoie cette chaîne.

Cette fonction est utile lorsque vous avez besoin de la représentation textuelle d'un objet pour le débogage, mais que vous ne pouvez pas utiliser operator<<. Par exemple :

QString str = QDebug::toString(list);

La chaîne est transmise en continu à l'aide de nospace().

Cette fonction a été introduite dans Qt 6.0.

Voir aussi toBytes().

int QDebug::verbosity() const

Renvoie la verbosité du flux de débogage.

Les opérateurs de flux peuvent vérifier la valeur pour décider si une sortie verbeuse est souhaitée et imprimer plus d'informations en fonction du niveau. Des valeurs plus élevées indiquent que davantage d'informations sont souhaitées.

La plage autorisée est comprise entre 0 et 7. La valeur par défaut est 2.

Voir également setVerbosity() et VerbosityLevel.

QDebug &QDebug::verbosity(int verbosityLevel)

Définit la verbosité du flux à verbosityLevel et renvoie une référence au flux.

La plage autorisée est comprise entre 0 et 7. La valeur par défaut est 2.

Voir aussi verbosity(), setVerbosity() et VerbosityLevel.

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

Écrit les données du tableau d'octets observé, t, dans le flux et renvoie une référence au flux.

Normalement, QDebug imprime les données entre guillemets et transforme les caractères de contrôle ou non US-ASCII en leurs séquences d'échappement C (\xAB). De cette manière, la sortie est toujours propre sur 7 bits et la chaîne peut être copiée à partir de la sortie et recollée dans des sources C++, si nécessaire.

Pour imprimer des caractères non imprimables sans transformation, activez la fonctionnalité noquote(). Notez que certains backends QDebug peuvent ne pas être propres sur 8 bits.

Voir la surcharge QByteArray pour des exemples.

Cette fonction a été introduite dans Qt 6.0.

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

Écrit le caractère, t, dans le flux et renvoie une référence au flux. Normalement, QDebug imprime les caractères de contrôle et les caractères non US-ASCII sous la forme de leur séquence d'échappement C ou de leur valeur Unicode (\u1234). Pour imprimer des caractères non imprimables sans transformation, activez la fonctionnalité noquote(), mais notez que certains backends QDebug peuvent ne pas être propres sur 8 bits et ne pas être en mesure de représenter t.

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

Écrit la chaîne, t, dans le flux et renvoie une référence au flux. Normalement, QDebug imprime la chaîne entre guillemets et transforme les caractères non imprimables en leurs valeurs Unicode (\u1234).

Pour imprimer des caractères non imprimables sans transformation, activez la fonctionnalité noquote(). Notez que certains backends QDebug peuvent ne pas être propres sur 8 bits.

Voir la surcharge QString pour des exemples.

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

Écrit la vue de la chaîne, s, dans le flux et renvoie une référence au flux. Normalement, QDebug imprime la chaîne entre guillemets et transforme les caractères non imprimables en leurs valeurs Unicode (\u1234).

Pour imprimer les caractères non imprimables sans transformation, activez la fonctionnalité noquote(). Notez que certains backends QDebug peuvent ne pas être propres sur 8 bits.

Voir la surcharge QString pour des exemples.

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

Écrit la vue de la chaîne, s, dans le flux et renvoie une référence au flux.

Normalement, QDebug imprime les données entre guillemets et transforme les caractères de contrôle ou non US-ASCII en leurs séquences d'échappement C (\xAB). De cette manière, la sortie est toujours propre sur 7 bits et la chaîne peut être copiée à partir de la sortie et recollée dans des sources C++, si nécessaire.

Pour imprimer des caractères non imprimables sans transformation, activez la fonctionnalité noquote(). Notez que certains backends de QDebug peuvent ne pas être propres sur 8 bits.

Cette fonction a été introduite dans Qt 6.0.

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

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

Imprime la représentation textuelle de l'entier de 128 bits i.

Note : Cet opérateur n'est disponible que si Qt supporte les types d'entiers de 128 bits. Si les types d'entiers de 128 bits sont disponibles dans votre compilation, mais que les bibliothèques Qt ont été compilées sans, l'opérateur affichera un avertissement à la place.

Note : Comme l'opérateur est un modèle de fonction, aucune conversion implicite n'est effectuée sur son argument. Il doit être exactement qint128/quint128.

Ces fonctions ont été introduites dans Qt 6.7.

Voir aussi QT_SUPPORTS_INT128.

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

Écrit la valeur booléenne, t, dans le flux et renvoie une référence au flux.

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

Écrit le caractère t dans le flux et renvoie une référence au flux.

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

Écrit le caractère UTF-16, t, dans le flux et renvoie une référence au flux.

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

Écrit le caractère UTF-32, t, dans le flux et renvoie une référence au flux.

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

Écrit le tableau d'octets, t, dans le flux et renvoie une référence au flux. Normalement, QDebug imprime le tableau entre guillemets et transforme les caractères de contrôle ou non US-ASCII en leurs séquences d'échappement C (\xAB). De cette manière, la sortie est toujours propre sur 7 bits et la chaîne peut être copiée à partir de la sortie et recollée dans des sources C++, si nécessaire.

Pour imprimer des caractères non imprimables sans transformation, activez la fonctionnalité noquote(). Notez que certains backends de QDebug peuvent ne pas être propres sur 8 bits.

Exemples de sortie :

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"; // caractère d'échappementqDebug() << ba;              // prints: "\x1B"

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

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

Notez que QDebug a dû fermer et rouvrir la chaîne de caractères de la manière dont les langages C et C++ concaténent les chaînes de caractères littérales afin que la lettre "b" ne soit pas interprétée comme faisant partie de la séquence d'échappement hexadécimale précédente.

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

Écrit la chaîne, t, dans le flux et renvoie une référence au flux. Normalement, QDebug imprime la chaîne entre guillemets et transforme les caractères non imprimables en leurs valeurs Unicode (\u1234).

Pour imprimer des caractères non imprimables sans transformation, activez la fonctionnalité noquote(). Notez que certains backends de QDebug peuvent ne pas être propres sur 8 bits.

Exemples de sortie :

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"; // caractère d'échappementqDebug() << s;              // prints: "\u001B"

s = "\u00AD"; // SOFT HYPHENqDebug() << s;              // prints: "\u00AD"

s = "\u00E1"; // LATIN SMALL LETTER A WITH ACUTEqDebug() << s;              // prints: "á"

s = "a\u0301"; // "a" suivi d'un ACCENT ACUTE COMBINANTqDebug() << s;              // prints: "á";

s = "\u0430\u0301"; // MAJUSCULE CYRILLIQUE A suivi d'un ACCENT ACUTE COMBINANTqDebug() << s;              // prints: "а́"

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

Écrit la chaîne UTF-8 terminée par '\0', t, dans le flux et renvoie une référence au flux. La chaîne n'est jamais citée ou échappée pour la sortie. Notez que QDebug met en mémoire tampon en interne en UTF-16 et peut avoir besoin d'être transformé en 8 bits en utilisant le codec de la locale afin d'utiliser certains backends, ce qui peut provoquer une sortie brouillée (mojibake). Il est recommandé de se limiter aux chaînes US-ASCII.

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

Écrit la chaîne UTF-16 terminée par u'\0't, dans le flux et renvoie une référence au flux. La chaîne n'est jamais citée ou échappée pour la sortie. Notez que QDebug met en mémoire tampon en interne en UTF-16 et peut avoir besoin d'être transformé en 8 bits en utilisant le codec de la locale afin d'utiliser certains backends, ce qui peut provoquer une sortie brouillée (mojibake). Il est recommandé de se limiter aux chaînes US-ASCII.

Cette fonction a été introduite dans 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)

Écrit la chaîne ou la vue de chaîne s dans le flux et renvoie une référence au flux.

Ces opérateurs ne participent à la résolution des surcharges que si Char est l'un des éléments suivants

  • char
  • char8_t (C++20 uniquement)
  • char16_t
  • char32_t
  • wchar_t

Ces fonctions ont été introduites dans Qt 6.5.

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

Écrit le contenu de opt (ou nullopt s'il n'est pas défini) dans ce flux. T doit prendre en charge le flux vers QDebug.

Cette fonction a été introduite dans Qt 6.7.

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

Écrit le contenu de tuple dans le flux. Tous les sites Ts... doivent prendre en charge le streaming vers QDebug.

Cette fonction a été introduite dans Qt 6.9.

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

Écrit un pointeur, t, dans le flux et renvoie une référence au flux.

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

Écrit le nombre à virgule flottante de 64 bits, t, dans le flux et renvoie une référence au flux.

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

Écrit le nombre à virgule flottante de 32 bits, t, dans le flux et renvoie une référence au flux.

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

Écrit l'entier signé, t, dans le flux et renvoie une référence au flux.

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

Écrit l'entier long signé, t, dans le flux et renvoie une référence au flux.

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

Écrit l'entier signé de 64 bits, t, dans le flux et renvoie une référence au flux.

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

Écrit un entier non signé de 64 bits, t, dans le flux et renvoie une référence au flux.

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

Écrit l'entier court signé, t, dans le flux et renvoie une référence au flux.

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

Imprime la durée du temps duration dans le flux et renvoie une référence au flux. La chaîne imprimée est la représentation numérique de la période suivie de l'unité de temps, similaire à ce que la bibliothèque standard C++ produirait avec std::ostream.

L'unité n'est pas localisée.

Cette fonction a été introduite dans Qt 6.6.

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

Écrit nullopt dans le flux.

Cette fonction a été introduite dans Qt 6.7.

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

Écrit un entier non signé, t, dans le flux et renvoie une référence au flux.

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

Écrit alors un entier long non signé, t, dans le flux et renvoie une référence au flux.

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

Écrit alors un entier court non signé, t, dans le flux et renvoie une référence au flux.

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

Affecte le flux de débogage other à ce flux et renvoie une référence à ce flux.

Non-membres associés

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

Écrit le contenu de list sur debug. T doit prendre en charge la diffusion en continu sur QDebug.

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

Écrit le contenu de map sur debug. Key et T doivent prendre en charge la diffusion en continu sur QDebug.

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

Écrit le contenu de hash sur debug. Key et T doivent prendre en charge la diffusion en continu sur QDebug.

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

Écrit le contenu de map sur debug. Key et T doivent prendre en charge la diffusion en continu sur QDebug.

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

Écrit le contenu de set sur debug. T doit prendre en charge la diffusion en continu sur QDebug.

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

Écrit le contenu de array dans debug. T doit prendre en charge le streaming dans QDebug.

Cette fonction a été introduite dans Qt 6.3.

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

Écrit le contenu de array dans debug. T doit prendre en charge le streaming dans QDebug.

Cette fonction a été introduite dans Qt 6.9.

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

Écrit le contenu de la liste vec dans debug. T doit prendre en charge la diffusion en continu dans QDebug.

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

Écrit le contenu de map sur debug. Key et T doivent prendre en charge la diffusion en continu sur QDebug.

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

Écrit le contenu de map sur debug. Key et T doivent prendre en charge la diffusion en continu sur QDebug.

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

Écrit le contenu de multiset dans debug. Le type Key doit prendre en charge le streaming dans QDebug.

Cette fonction a été introduite dans Qt 6.9.

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

Écrit le contenu de pair sur debug. T1 et T2 doivent prendre en charge la diffusion en continu sur QDebug.

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

Écrit le contenu de set dans debug. Le type Key doit prendre en charge le streaming dans QDebug.

Cette fonction a été introduite dans 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)

Écrit le contenu de map dans debug. Key et T doivent prendre en charge le streaming dans QDebug.

Cette fonction a été introduite dans 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)

Écrit le contenu de unordered_set dans debug. Le type Key doit prendre en charge le streaming dans QDebug.

Cette fonction a été introduite dans Qt 6.9.

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

Écrit le contenu du vecteur vec dans debug. T doit prendre en charge la diffusion en continu dans QDebug.

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

Imprime la valeur d'ordonnancement Qt XML ou std t dans l'objet debug.

Contraintes

Participe à la résolution de la surcharge uniquement si T est un de <Qt/Std>::<weak/partial/strong>_ordering.

Cette fonction a été introduite dans Qt 6.9.

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

Écrit le contenu de cache sur debug. T doit prendre en charge la diffusion en continu sur QDebug.

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

Écriture de flags à debug.

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

Écrit le contenu de hash dans debug. Key et T doivent prendre en charge le flux de données dans QDebug.

Documentation sur les macros

QDebug qCritical()

Renvoie un objet QDebug qui enregistre un message critique dans le gestionnaire de messages central.

Exemple :

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

L'utilisation de qCritical() est une alternative à qCritical(const char *, ...), qui suit le paradigme printf.

Notez que QDebug et les opérateurs de flux spécifiques au type ajoutent divers formats pour faciliter la lecture du message de débogage. Voir la documentation de formatting options pour plus de détails.

À des fins de débogage, il est parfois pratique de laisser le programme s'interrompre en cas de messages critiques. Cela vous permet alors d'inspecter le core dump, ou d'attacher un débogueur - voir aussi qFatal(). Pour ce faire, définissez la variable d'environnement QT_FATAL_CRITICALS avec un nombre n. Le programme se termine alors au n-ième message critique. En d'autres termes, si la variable d'environnement a la valeur 1, le programme se terminera au premier appel ; si elle contient la valeur 10, il se terminera au dixième appel. Toute valeur non numérique dans la variable d'environnement est équivalente à 1.

Remarque : cette macro est à l'épreuve des threads.

Voir aussi qCritical(const char *, ...) et qCCritical().

QDebug qDebug()

Renvoie un objet QDebug qui enregistre un message de débogage dans le gestionnaire de messages central.

Exemple :

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

L'utilisation de qDebug() est une alternative à qDebug(const char *, ...), qui suit le paradigme printf.

Notez que QDebug et les opérateurs de flux spécifiques au type ajoutent divers formats pour faciliter la lecture du message de débogage. Voir la documentation de formatting options pour plus de détails.

Cette fonction ne fait rien si QT_NO_DEBUG_OUTPUT a été défini lors de la compilation.

Remarque : cette macro est à l'épreuve des threads.

Voir aussi qDebug(const char *, ...) et qCDebug().

QDebug qFatal()

Renvoie un objet QDebug qui enregistre un message fatal au gestionnaire de messages central.

L'utilisation de qFatal() est une alternative à qFatal(const char *, ...), qui suit le paradigme printf.

Notez que QDebug et les opérateurs de flux spécifiques aux types ajoutent divers formats pour faciliter la lecture du message de débogage. Voir la documentation de formatting options pour plus de détails.

Si vous utilisez le gestionnaire de message par défaut, le flux retourné sera interrompu pour créer un core dump. Sous Windows, pour les versions de débogage, cette fonction signalera un _CRT_ERROR vous permettant de connecter un débogueur à l'application.

Remarque : cette macro est à l'épreuve des threads.

Voir aussi qFatal(const char *, ...) et qCFatal().

QDebug qInfo()

Renvoie un objet QDebug qui enregistre un message d'information au gestionnaire de messages central.

Exemple :

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

L'utilisation de qInfo() est une alternative à qInfo(const char *, ...), qui suit le paradigme printf.

Notez que QDebug et les opérateurs de flux spécifiques au type ajoutent divers formats pour rendre le message de débogage plus facile à lire. Voir la documentation de formatting options pour plus de détails.

Cette fonction ne fait rien si QT_NO_INFO_OUTPUT a été défini lors de la compilation.

Remarque : cette macro est à l'épreuve des threads.

Voir aussi qInfo(const char *, ...) et qCInfo().

QDebug qWarning()

Renvoie un objet QDebug qui enregistre un message d'avertissement dans le gestionnaire de messages central.

Exemple :

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

L'utilisation de qWarning() est une alternative à qWarning(const char *, ...), qui suit le paradigme printf.

Notez que QDebug et les opérateurs de flux spécifiques aux types ajoutent divers formats pour faciliter la lecture du message de débogage. Voir la documentation de formatting options pour plus de détails.

Cette fonction ne fait rien si QT_NO_WARNING_OUTPUT a été défini lors de la compilation.

À des fins de débogage, il est parfois pratique de laisser le programme s'interrompre pour les messages d'avertissement. Cela vous permet alors d'inspecter le core dump, ou d'attacher un débogueur - voir aussi qFatal(). Pour ce faire, définissez la variable d'environnement QT_FATAL_WARNINGS avec un nombre n. Le programme se termine alors pour le n-ième avertissement. En d'autres termes, si la variable d'environnement a la valeur 1, le programme se terminera au premier appel ; si elle contient la valeur 10, il se terminera au dixième appel. Toute valeur non numérique dans la variable d'environnement est équivalente à 1.

Remarque : cette macro est à l'épreuve des threads.

Voir aussi qWarning(const char *, ...) et 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.