Sur cette page

QDebug Class

La classe QDebug fournit un flux de sortie destiné aux informations de débogage. En savoir plus...

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

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

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, dans un fichier, dans une chaîne de caractères ou sur la console.

Utilisation de base

En général, 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 créer un objet QDebug à l'aide du constructeur qui accepte une valeur « QtMsgType » de type « QtDebugMsg ». De même, les fonctions « qInfo()», « qWarning()», « qCritical()» et « qFatal()» renvoient également des objets QDebug pour les types de messages correspondants.

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

Options de mise en forme

QDebug formate la sortie de manière à la rendre facilement lisible. Il ajoute automatiquement des espaces entre les arguments et place les arguments de type ` QString`, ` QByteArray` et ` QChar ` entre guillemets.

Vous pouvez ajuster ces options à l'aide des méthodes space(), nospace(), quote() et noquote(). De plus, la fonction QTextStream manipulators peut être redirigée vers un flux QDebug.

QDebugStateSaver limite les modifications de mise en forme à la portée actuelle. La méthode resetFormat() rétablit les options par défaut.

Écriture de types personnalisés dans un flux

De nombreux types standard peuvent être écrits dans des objets QDebug, et Qt prend en charge la plupart des types de valeurs Qt. Pour ajouter la prise en charge de 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 les différents niveaux de détail.

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

Voir également verbosity() et setVerbosity().

Documentation des fonctions membres

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

Crée un flux de débogage qui écrit dans le fichier spécifié byteArray.

Les données sont encodées en UTF-8, ce qui peut ne pas correspondre aux paramètres régionaux du système, par exemple sous Windows.

Avec les objets instanciés à l'aide de ce constructeur, les données peuvent être mises en mémoire tampon et ne seront pas écrites dans le tableau d'octets tant que le flux n'aura pas été vidé, par exemple à l'aide de ` Qt::flush`.

Cette fonction a été introduite dans Qt 6.9.

Voir également QTextStream manipulators.

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

Crée un flux de débogage qui écrit dans le fichier spécifié device.

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

Crée un flux de débogage qui écrit dans le fichier spécifié string.

[explicit] QDebug::QDebug(QtMsgType t)

Crée un flux de débogage qui écrit dans le gestionnaire correspondant au type de message « t ».

QDebug::QDebug(const QDebug &o)

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

[noexcept] QDebug::~QDebug()

Vide toutes les données en attente d'écriture et supprime 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 également setAutoInsertSpaces() et QDebugStateSaver.

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

Écrit un caractère c dans le flux de débogage, en fonction du paramètre actuel d'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 espace dans le flux de débogage, en fonction du paramètre actuel d'insertion automatique d'espaces, et renvoie une référence au flux.

Voir également space() et nospace().

QDebug &QDebug::noquote()

Désactive l'insertion automatique de guillemets autour du contenu de QChar, QString et QByteArray, puis renvoie une référence au flux.

Lorsque la mise entre guillemets est désactivée, ces types sont affichés sans guillemets 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 également space() et maybeSpace().

QDebug &QDebug::quote()

Active l'insertion automatique de guillemets autour du contenu de QChar, QString et QByteArray, et renvoie une référence au flux.

La mise entre guillemets est activée par défaut.

Voir également noquote() et maybeQuote().

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

Renvoie « true » si cette instance de ` QDebug ` place les chaînes qui lui sont transmises entre guillemets (ce qui est le comportement par défaut).

Cette fonction a été introduite dans Qt 6.7.

Voir également QDebugStateSaver, quote(), noquote() et setQuoteStrings().

QDebug &QDebug::resetFormat()

Réinitialise les options de mise en forme du flux, le ramenant ainsi à son état initial.

Voir également space() et quote().

void QDebug::setAutoInsertSpaces(bool b)

Active l'insertion automatique d'espaces entre les écritures si la valeur de ` b ` est « true » ; dans le cas contraire, l'insertion automatique d'espaces est désactivée.

Voir également autoInsertSpaces() et QDebugStateSaver.

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

Active la mise entre guillemets des chaînes transmises en continu à cette instance d'QDebug si b est true; dans le cas contraire, la mise entre guillemets est désactivée.

Par défaut, les chaînes sont mises entre guillemets.

Cette fonction a été introduite dans Qt 6.7.

Voir également QDebugStateSaver, quote(), noquote() et quoteStrings().

void QDebug::setVerbosity(int verbosityLevel)

Définit le niveau de détail du flux sur « verbosityLevel ».

La plage autorisée va de 0 à 7. La valeur par défaut est 2.

Voir également verbosity() et VerbosityLevel.

QDebug &QDebug::space()

Écrit un espace dans le flux de débogage et renvoie une référence à ce flux.

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

Voir également nospace() et maybeSpace().

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

Permet d'échanger cette instance de flux de débogage contre celle de other. Cette opération est très rapide et ne plante jamais.

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

Cela revient à transmettre ` object ` à ` QDebug::toString(object).toUtf8()`, mais de manière plus efficace.

Cette fonction a été introduite dans Qt 6.9.

Voir également toString().

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

Convertit ` object ` en une instance de ` 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 à des fins de débogage, mais que vous ne pouvez pas utiliser ` operator<<`. Par exemple :

QString str = QDebug::toString(list);

La chaîne est transmise via ` nospace()`.

Cette fonction a été introduite dans Qt 6.0.

Voir aussi toBytes().

int QDebug::verbosity() const

Renvoie le niveau de détail du flux de débogage.

Les opérateurs de flux peuvent vérifier cette valeur pour déterminer si une sortie détaillée est souhaitée et afficher davantage d'informations en fonction du niveau. Plus la valeur est élevée, plus le niveau de détail souhaité est important.

La plage autorisée va de 0 à 7. La valeur par défaut est 2.

Voir également setVerbosity() et VerbosityLevel.

QDebug &QDebug::verbosity(int verbosityLevel)

Définit le niveau de détail du flux sur « verbosityLevel » et renvoie une référence au flux.

La plage autorisée va de 0 à 7. La valeur par défaut est 2.

Voir également 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 à ce flux.

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

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

Consultez la surcharge de ` 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 à ce dernier. Normalement, ` QDebug ` affiche les caractères de contrôle et les caractères non US-ASCII sous la forme de leurs séquences d'échappement C ou de leur valeur Unicode (`\u1234`). Pour afficher des caractères non imprimables sans transformation, activez la fonctionnalité ` noquote()`, mais notez que certains backends d'QDebug peuvent ne pas être compatibles avec les 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 à ce dernier. En règle générale, la fonction QDebug affiche la chaîne entre guillemets et convertit les caractères non imprimables en leurs valeurs Unicode (\u1234).

Pour afficher des caractères non imprimables sans transformation, activez la fonctionnalité noquote(). Notez que certains backends de QDebug peuvent ne pas prendre correctement en charge les caractères 8 bits.

Consultez la surcharge de QString pour des exemples.

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

Écrit la chaîne de caractères « view » ( s) dans le flux et renvoie une référence à ce dernier. En règle générale, la fonction « QDebug » affiche la chaîne entre guillemets et convertit les caractères non imprimables en leurs valeurs Unicode (\u1234).

Pour afficher des caractères non imprimables sans transformation, activez la fonctionnalité noquote(). Notez que certains backends de QDebug peuvent ne pas prendre correctement en charge les caractères 8 bits.

Consultez la surcharge de la fonction ` QString ` pour voir des exemples.

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

Écrit la chaîne de caractères « s » dans le flux et renvoie une référence à ce flux.

Normalement, ` QDebug ` affiche 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 compatible 7 bits et la chaîne peut être copiée depuis la sortie puis recollée dans les sources C++, si nécessaire.

Pour afficher des caractères non imprimables sans transformation, activez la fonctionnalité noquote(). Notez que certains backends QDebug peuvent ne pas prendre en charge correctement les caractères 8 bits.

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

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

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

Remarque : cet opérateurétant un modèle de fonction, aucune conversion implicite n’est effectuée sur son argument. Celui-ci doit être exactement de type `qint128` ou `quint128`.

Ces fonctions ont été introduites dans Qt 6.7.

Voir également QT_SUPPORTS_INT128.

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

Écrit la valeur booléenne « t » dans le flux et renvoie une référence à ce flux.

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

Écrit le caractère « t » dans le flux et renvoie une référence à ce dernier.

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

Écrit le caractère UTF-16 « t » dans le flux et renvoie une référence à ce flux.

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

Écrit le caractère UTF-32 « t » dans le flux et renvoie une référence vers ce flux.

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

Écrit le tableau d’octets, t, dans le flux et renvoie une référence à ce dernier. Normalement, la fonction ` QDebug ` affiche 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 compatible 7 bits et la chaîne peut être copiée depuis la sortie puis recollée dans les sources C++, si nécessaire.

Pour afficher des caractères non imprimables sans transformation, activez la fonctionnalité ` noquote()`. Notez que certains backends de ` QDebug ` peuvent ne pas prendre en charge les caractères 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'échappement
qDebug() << ba;              // prints: "\x1B"

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

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

Remarquez comment QDebug a dû fermer puis rouvrir la chaîne, à la manière dont les langages C et C++ concatènent les littéraux de chaîne, 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 à ce dernier. En règle générale, la fonction ` QDebug ` affiche la chaîne entre guillemets et convertit les caractères non imprimables en leurs valeurs Unicode (\u1234).

Pour afficher des caractères non imprimables sans transformation, activez la fonctionnalité noquote(). Notez que certains backends de QDebug peuvent ne pas être compatibles avec les caractères 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'échappement
qDebug() << s;              // prints: "\u001B"

s = "\u00AD";               // TRAIT D'UNION SOUPLE
qDebug() << s;              // prints: "\u00AD"

s = "\u00E1";               // A MINUSCULE LATINE AVEC ACCENT AIGU
qDebug() << s;              // prints: "á"

s = "a\u0301";              // « a » suivi de l'ACCENT AIGU COMBINÉ
qDebug() << s;              // prints: "á";

s = "\u0430\u0301";         // LETTRE MINUSCULE A EN CYRILLIQUE suivie d'un ACCENT AIGU COMBINÉ
qDebug() << 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 à ce dernier. La chaîne n'est jamais mise entre guillemets ni échappée lors de la sortie. Notez que QDebug utilise en interne un tampon au format UTF-16 et peut être amené à convertir les données en 8 bits à l’aide du codec de la locale afin d’utiliser certains backends, ce qui peut entraîner une sortie altéré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 à ce flux. La chaîne n'est jamais mise entre guillemets ni échappée lors de la sortie. Notez que la fonction ` QDebug ` utilise en interne un tampon au format UTF-16 et peut être amenée à convertir la chaîne en 8 bits à l'aide du codec de la locale afin d'utiliser certains backends, ce qui peut entraîner une sortie déformé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 à ce 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> requires if_streamable<T> 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. La fonction ` T ` doit prendre en charge la diffusion en continu vers QDebug.

Cette fonction a été introduite dans Qt 6.7.

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

Écrit le contenu de ` tuple ` dans le flux. Toutes les fonctions ` Ts... ` doivent prendre en charge la transmission en continu 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 à ce dernier.

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

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

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

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

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

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

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

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

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

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

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

Écrit l'entier 64 bits non signé 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)

Affiche la durée duration dans le flux et renvoie une référence à ce dernier. La chaîne affichée correspond à la représentation numérique de la durée suivie de l'unité de temps, à l'instar de ce que produirait la bibliothèque standard C++ avec la fonction ` 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 l'entier non signé t dans le flux et renvoie une référence à ce dernier.

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

Écrit l'entier long non signé t dans le flux et renvoie une référence à ce flux.

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

Écrit l'entier court non signé t dans le flux et renvoie une référence vers ce flux.

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

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

Éléments non membres associés

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

Écrit le contenu de hash vers debug. Les sites Key et T doivent tous deux prendre en charge la diffusion en continu vers QDebug.

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

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

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

Écrit le contenu de map vers debug. Les sites Key et T doivent tous deux prendre en charge la diffusion en continu vers QDebug.

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

Écrit le contenu de hash vers debug. Les sites Key et T doivent tous deux prendre en charge la diffusion en continu vers QDebug.

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

Écrit le contenu de map vers debug. Les sites Key et T doivent tous deux prendre en charge la diffusion en continu vers QDebug.

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

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

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

Écrit le contenu de array vers debug. La fonction T doit prendre en charge la transmission en continu vers 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 vers debug. T doit prendre en charge la diffusion en continu vers 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 vers debug. T doit prendre en charge la transmission en continu vers 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 vers debug. Les sites Key et T doivent tous deux prendre en charge la diffusion en continu vers 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 vers debug. Les sites Key et T doivent tous deux prendre en charge la diffusion en continu vers 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 vers debug. Le type Key doit prendre en charge la transmission en continu vers 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 vers debug. Les sites T1 et T2 doivent tous deux prendre en charge la diffusion en continu vers 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 la transmission en continu vers ` 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`. Les fichiers ` Key ` et ` T ` doivent tous deux prendre en charge la transmission en continu vers ` 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 la transmission en continu vers ` 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 transmission en continu vers QDebug.

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

Affiche « s » dans le flux de débogage « d ».

Si d.quotedString() est true, cela indique l'encodage de la chaîne. Si vous souhaitez uniquement les données de la chaîne, utilisez visit() comme suit :

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

Cette fonction a été introduite dans Qt 6.7.

Voir également QAnyStringView::visit().

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

Affiche la valeur de classement Qt XML ou std t dans l'objet debug.

Contraintes

Ne participe à la résolution des surcharges que si ` T ` est l’une des valeurs suivantes : <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 vers debug. T doit prendre en charge la diffusion en continu vers QDebug.

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

flags écrit à l'adresse debug.

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() constitue une alternative à qCritical(const char *, ...), qui suit le paradigme printf.

Notez que la fonction ` QDebug ` et les opérateurs de flux spécifiques à chaque type ajoutent divers éléments de mise en forme afin de rendre le message de débogage plus lisible. Consultez la documentation d’ 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 ensuite d’inspecter le vidage de mémoire (core dump) ou de connecter un débogueur — voir également qFatal(). Pour activer cette fonctionnalité, définissez la variable d’environnement QT_FATAL_CRITICALS sur un nombre n. Le programme s’interrompt alors au n-ième message critique. Autrement dit, si la variable d’environnement est définie sur 1, le programme s’arrêtera dès le premier appel ; si elle contient la valeur 10, il s’arrêtera au 10e appel. Toute valeur non numérique dans la variable d’environnement équivaut à 1.

Remarque : cette macro est sûre pour les threads.

Voir également ` 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() constitue une alternative à qDebug(const char *, ...), qui suit le paradigme printf.

Notez qu’ QDebug et les opérateurs de flux spécifiques à chaque type ajoutent divers formats pour rendre le message de débogage plus lisible. Consultez la documentation d’ formatting options pour plus de détails.

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

Remarque : cette macro est sûre pour les threads.

Voir également qDebug(const char *, ...) et qCDebug().

QDebug qFatal()

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

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

Notez que la fonction ` QDebug ` et les opérateurs de flux spécifiques à chaque type ajoutent divers éléments de mise en forme afin de rendre le message de débogage plus lisible. Consultez la documentation d'formatting options pour plus de détails.

Si vous utilisez le gestionnaire de messages par défaut, le flux renvoyé s'interrompra pour créer un vidage de mémoire. Sous Windows, pour les versions de débogage, cette fonction signalera une erreur _CRT_ERROR, ce qui vous permettra de connecter un débogueur à l'application.

Remarque : cette macro est thread-safe.

Voir également ` qFatal(const char *, ...)` et ` qCFatal()`.

QDebug qInfo()

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

Exemple :

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

L'utilisation de qInfo() constitue 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 faciliter la lecture du message de débogage. Consultez la documentation d'formatting options pour plus de détails.

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

Remarque : cette macro est sûre pour les threads.

Voir également 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() constitue une alternative à qWarning(const char *, ...), qui suit le paradigme printf.

Notez que la fonction ` QDebug ` et les opérateurs de flux spécifiques à chaque type ajoutent divers formats afin de rendre le message de débogage plus lisible. Reportez-vous à 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 en cas de messages d’avertissement. Cela vous permet ensuite d’inspecter le vidage de mémoire (core dump) ou de connecter un débogueur — voir également qFatal(). Pour activer cette fonctionnalité, définissez la variable d’environnement QT_FATAL_WARNINGS sur un nombre n. Le programme s’interrompt alors au n-ième avertissement. Autrement dit, si la variable d’environnement est définie sur 1, le programme s’arrêtera dès le premier appel ; si elle contient la valeur 10, il s’arrêtera au 10e appel. Toute valeur non numérique dans la variable d’environnement équivaut à 1.

Remarque : cette macro est sûre pour les threads.

Voir également ` 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.