En esta página

QDebug Class

La clase QDebug proporciona un flujo de salida para información de depuración. Más...

Cabecera: #include <QDebug>
CMake: find_package(Qt6 REQUIRED COMPONENTS Core)
target_link_libraries(mytarget PRIVATE Qt6::Core)
qmake: QT += core
Hereda: QIODeviceBase
Heredado por:

QQmlInfo

Tipos Públicos

enum VerbosityLevel { MinimumVerbosity, DefaultVerbosity, MaximumVerbosity }

Funciones Públicas

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

Miembros públicos estáticos

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

Descripción detallada

QDebug se utiliza cuando el desarrollador necesita escribir información de depuración o seguimiento a un dispositivo, archivo, cadena o consola.

Uso Básico

En el caso común, es útil llamar a la función qDebug() para obtener un objeto QDebug por defecto a utilizar para escribir información de depuración.

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

Esto construye un objeto QDebug utilizando el constructor que acepta un valor QtMsgType de QtDebugMsg. De forma similar, las funciones qInfo(), qWarning(), qCritical() y qFatal() también devuelven objetos QDebug para los tipos de mensaje correspondientes.

La clase también proporciona varios constructores para otras situaciones, incluyendo un constructor que acepta un QFile o cualquier otra subclase QIODevice que se utiliza para escribir información de depuración en archivos y otros dispositivos. El constructor que acepta un QString se utiliza para escribir en una cadena para su visualización o serialización.

Opciones de Formato

QDebug formatea la salida para que sea fácilmente legible. Automáticamente añade espacios entre argumentos, y añade comillas alrededor de los argumentos QString, QByteArray, QChar.

Puedes ajustar estas opciones a través de los métodos space(), nospace() y quote(), noquote(). Además, QTextStream manipulators se puede canalizar en un flujo QDebug.

QDebugStateSaver limita los cambios de formato al ámbito actual. resetFormat() restablece las opciones a las predeterminadas.

Escribiendo Tipos Personalizados a un Flujo

Muchos tipos estándar pueden escribirse en objetos QDebug, y Qt proporciona soporte para la mayoría de los tipos de valor Qt. Para añadir soporte para tipos personalizados, necesitas implementar un operador de flujo, como en el siguiente ejemplo:

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

    return debug;
}

Esto se describe en los documentos Técnicas de Depuración y Creación de Tipos Qt Personal izados.

Documentación de Tipos Miembros

enum QDebug::VerbosityLevel

Este enum describe el rango de niveles de verbosidad.

ConstanteValor
QDebug::MinimumVerbosity0
QDebug::DefaultVerbosity2
QDebug::MaximumVerbosity7

Véase también verbosity() y setVerbosity().

Documentación de las funciones miembro

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

Construye un flujo de depuración que escribe en la dirección byteArray.

Los datos se codifican en UTF-8, que puede no ser la misma que la configuración regional del sistema, por ejemplo, en Windows.

Con objetos instanciados con este constructor, los datos pueden ser almacenados en buffer y no serán escritos en la matriz de bytes hasta que el flujo sea vaciado, por ejemplo, usando Qt::flush.

Esta función se introdujo en Qt 6.9.

Ver también QTextStream manipulators.

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

Crea un flujo de depuración que escribe en la dirección device.

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

Crea un flujo de depuración que escribe en la dirección string.

[explicit] QDebug::QDebug(QtMsgType t)

Construye un flujo de depuración que escribe en el manejador para el tipo de mensaje t.

QDebug::QDebug(const QDebug &o)

Construye una copia del otro flujo de depuración o.

[noexcept] QDebug::~QDebug()

Borra cualquier dato pendiente de escribir y destruye el flujo de depuración.

bool QDebug::autoInsertSpaces() const

Devuelve true si esta instancia QDebug insertará automáticamente espacios entre escrituras.

Véase también setAutoInsertSpaces() y QDebugStateSaver.

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

Escribe un carácter c en el flujo de depuración, dependiendo de la configuración actual para la inserción automática de comillas, y devuelve una referencia al flujo.

El carácter por defecto es una comilla doble ".

Véase también quote() y noquote().

QDebug &QDebug::maybeSpace()

Escribe un carácter de espacio en el flujo de depuración, dependiendo de la configuración actual para la inserción automática de espacios, y devuelve una referencia al flujo.

Véase también space() y nospace().

QDebug &QDebug::noquote()

Desactiva la inserción automática de caracteres de entrecomillado alrededor de los contenidos de QChar, QString y QByteArray y devuelve una referencia al flujo.

Cuando el entrecomillado está desactivado, estos tipos se imprimen sin caracteres de entrecomillado y sin escape de caracteres no imprimibles.

Véase también quote() y maybeQuote().

QDebug &QDebug::nospace()

Desactiva la inserción automática de espacios y devuelve una referencia al flujo.

Véase también space() y maybeSpace().

QDebug &QDebug::quote()

Habilita la inserción automática de caracteres de entrecomillado alrededor de los contenidos de QChar, QString y QByteArray y devuelve una referencia al flujo.

El entrecomillado está activado por defecto.

Véase también noquote() y maybeQuote().

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

Devuelve true si esta instancia de QDebug citará las cadenas que se le transmitan (que es el valor predeterminado).

Esta función se introdujo en Qt 6.7.

Véase también QDebugStateSaver, quote(), noquote(), y setQuoteStrings().

QDebug &QDebug::resetFormat()

Restablece las opciones de formato del flujo, devolviéndolo a su estado de construcción original.

Véase también space() y quote().

void QDebug::setAutoInsertSpaces(bool b)

Activa la inserción automática de espacios entre escrituras si b es verdadero; en caso contrario, la inserción automática de espacios está desactivada.

Véase también autoInsertSpaces() y QDebugStateSaver.

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

Habilita el entrecomillado de las cadenas transmitidas a esta instancia de QDebug si b es true; de lo contrario, el entrecomillado está deshabilitado.

Por defecto, las cadenas se entrecomillan.

Esta función se introdujo en Qt 6.7.

Véase también QDebugStateSaver, quote(), noquote(), y quoteStrings().

void QDebug::setVerbosity(int verbosityLevel)

Establece la verbosidad del flujo en verbosityLevel.

El rango permitido es de 0 a 7. El valor por defecto es 2.

Véase también verbosity() y VerbosityLevel.

QDebug &QDebug::space()

Escribe un carácter de espacio en el flujo de depuración y devuelve una referencia al flujo.

El flujo recuerda que la inserción automática de espacios está activada para futuras escrituras.

Véase también nospace() y maybeSpace().

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

Intercambia esta instancia de flujo de depuración con other. Esta operación es muy rápida y nunca falla.

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

Esto es equivalente a pasar object a QDebug::toString(object).toUtf8(), pero más eficiente.

Esta función se introdujo en Qt 6.9.

Véase también toString().

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

Transfiere object a una instancia de QDebug que opera sobre una cadena y, a continuación, devuelve dicha cadena.

Esta función es útil para casos en los que se necesita la representación textual de un objeto para depuración, pero no se puede utilizar operator<<. Por ejemplo:

QString str = QDebug::toString(list);

La cadena se transmite utilizando nospace().

Esta función se introdujo en Qt 6.0.

Véase también toBytes().

int QDebug::verbosity() const

Devuelve la verbosidad del flujo de depuración.

Los operadores de flujo pueden comprobar el valor para decidir si se desea una salida verbosa e imprimir más información en función del nivel. Los valores más altos indican que se desea más información.

El rango permitido es de 0 a 7. El valor por defecto es 2.

Véase también setVerbosity() y VerbosityLevel.

QDebug &QDebug::verbosity(int verbosityLevel)

Establece la verbosidad del flujo en verbosityLevel y devuelve una referencia al flujo.

El rango permitido es de 0 a 7. El valor por defecto es 2.

Véase también verbosity(), setVerbosity(), y VerbosityLevel.

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

Escribe los datos de la matriz de bytes observada, t, en el flujo y devuelve una referencia al flujo.

Normalmente, QDebug imprime los datos entre comillas y transforma los caracteres de control o no-US-ASCII a sus secuencias de escape en C (\xAB). De esta forma, la salida es siempre de 7 bits limpios y la cadena puede ser copiada de la salida y pegada de nuevo en fuentes C++, si es necesario.

Para imprimir caracteres no imprimibles sin transformación, active la funcionalidad noquote(). Tenga en cuenta que algunos backends de QDebug pueden no ser de 8 bits limpios.

Consulte la sobrecarga QByteArray para ver ejemplos.

Esta función se introdujo en Qt 6.0.

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

Escribe el carácter, t, en el flujo y devuelve una referencia al flujo. Normalmente, QDebug imprime caracteres de control y caracteres no-US-ASCII como sus secuencias de escape C o su valor Unicode (\u1234). Para imprimir caracteres no imprimibles sin transformación, habilite la funcionalidad noquote(), pero tenga en cuenta que algunos backends de QDebug pueden no ser limpios de 8 bits y no ser capaces de representar t.

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

Escribe la cadena, t, en el flujo y devuelve una referencia al flujo. Normalmente, QDebug imprime la cadena entre comillas y transforma los caracteres no imprimibles a sus valores Unicode (\u1234).

Para imprimir caracteres no imprimibles sin transformación, active la funcionalidad noquote(). Tenga en cuenta que algunos backends de QDebug pueden no ser limpios de 8 bits.

Consulte la sobrecarga QString para ver ejemplos.

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

Escribe la vista de cadena, s, en el flujo y devuelve una referencia al flujo. Normalmente, QDebug imprime la cadena entre comillas y transforma los caracteres no imprimibles a sus valores Unicode (\u1234).

Para imprimir caracteres no imprimibles sin transformación, active la funcionalidad noquote(). Tenga en cuenta que algunos backends de QDebug pueden no ser limpios de 8 bits.

Consulte la sobrecarga QString para ver ejemplos.

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

Escribe la vista de cadena, s, en el flujo y devuelve una referencia al flujo.

Normalmente, QDebug imprime los datos entre comillas y transforma los caracteres de control o no-US-ASCII a sus secuencias de escape C (\xAB). De esta forma, la salida es siempre de 7 bits limpios y la cadena puede ser copiada de la salida y pegada de nuevo en fuentes C++, si es necesario.

Para imprimir caracteres no imprimibles sin transformación, active la funcionalidad noquote(). Tenga en cuenta que algunos backends de QDebug pueden no ser de 8 bits limpios.

Esta función se introdujo en 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 representación textual del entero de 128 bits i.

Nota: Este operador sólo está disponible si Qt soporta tipos enteros de 128 bits. Si los tipos enteros de 128 bits están disponibles en su compilación, pero las bibliotecas Qt se compilaron sin ellos, el operador imprimirá una advertencia en su lugar.

Nota: Debido a que el operador es una plantilla de función, no se realizan conversiones implícitas en su argumento. Debe ser exactamente qint128/quint128.

Estas funciones se introdujeron en Qt 6.7.

Véase también QT_SUPPORTS_INT128.

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

Escribe el valor booleano, t, en el flujo y devuelve una referencia al flujo.

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

Escribe el carácter, t, en el flujo y devuelve una referencia al flujo.

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

Escribe el carácter UTF-16, t, en el flujo y devuelve una referencia al flujo.

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

Escribe el carácter UTF-32, t, en el flujo y devuelve una referencia al flujo.

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

Escribe la matriz de bytes, t, en el flujo y devuelve una referencia al flujo. Normalmente, QDebug imprime el array entre comillas y transforma los caracteres de control o no-US-ASCII a sus secuencias de escape C (\xAB). De esta forma, la salida es siempre de 7 bits limpios y la cadena puede ser copiada de la salida y pegada de nuevo en fuentes C++, si es necesario.

Para imprimir caracteres no imprimibles sin transformación, active la funcionalidad noquote(). Tenga en cuenta que algunos backends de QDebug pueden no ser de 8 bits limpios.

Ejemplos de salida:

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

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

ba = "\033"; // carácter de escapeqDebug() << ba;              // prints: "\x1B"

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

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

Observe cómo QDebug necesitaba cerrar y volver a abrir la cadena de la forma en que los lenguajes C y C++ concatenan los literales de cadena para que la letra 'b' no se interprete como parte de la secuencia de escape hexadecimal anterior.

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

Escribe la cadena, t, en el flujo y devuelve una referencia al flujo. Normalmente, QDebug imprime la cadena entre comillas y transforma los caracteres no imprimibles a sus valores Unicode (\u1234).

Para imprimir caracteres no imprimibles sin transformación, active la funcionalidad noquote(). Tenga en cuenta que algunos backends de QDebug pueden no estar limpios de 8 bits.

Ejemplos de salida:

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

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

s = "\033"; // carácter de escapeqDebug() << s;              // prints: "\u001B"

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

s = "\u00E1"; // LETRA MAYÚSCULA LATINA A CON AGUDOqDebug() << s;              // prints: "á"

s = "a\u0301"; // "a" seguida de ACENTO AGUDO COMBINADOqDebug() << s;              // prints: "á";

s = "\u0430\u0301"; // MAYÚSCULA CIRÍLICA A seguida de ACENTO AGUDO COMBINADOqDebug() << s;              // prints: "а́"

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

Escribe la cadena UTF-8 terminada en '\0' t, en el flujo y devuelve una referencia al flujo. La cadena nunca se entrecomilla ni se escapa para la salida. Tenga en cuenta que QDebug se almacena internamente como UTF-16 y puede ser necesario transformarlo a 8 bits utilizando el códec de la configuración regional para poder utilizar algunos backends, lo que puede provocar una salida distorsionada (mojibake). Se recomienda restringirse a cadenas US-ASCII.

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

Escribe la cadena UTF-16 u'\0'terminada, t, en el flujo y devuelve una referencia al flujo. La cadena nunca se entrecomilla ni se escapa para la salida. Tenga en cuenta que QDebug se almacena internamente como UTF-16 y puede ser necesario transformarlo a 8 bits utilizando el códec de la configuración regional para poder utilizar algunos backends, lo que puede provocar una salida confusa (mojibake). Se recomienda restringir a cadenas US-ASCII.

Esta función se introdujo en 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)

Escribe la cadena o la vista de cadena s en el flujo y devuelve una referencia al flujo.

Estos operadores sólo participan en la resolución de sobrecargas si Char es uno de los operadores

  • char
  • char8_t (sólo C++20)
  • char16_t
  • char32_t
  • wchar_t

Estas funciones se introdujeron en Qt 6.5.

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

Escribe el contenido de opt (o nullopt si no está establecido) en este stream. T necesita soportar streaming en QDebug.

Esta función se introdujo en Qt 6.7.

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

Escribe el contenido de tuple en el flujo. Todos los Ts... necesitan soportar streaming en QDebug.

Esta función se introdujo en Qt 6.9.

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

Escribe un puntero, t, en el flujo y devuelve una referencia al flujo.

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

Escribe el número de coma flotante de 64 bits, t, en el flujo y devuelve una referencia al flujo.

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

Escribe el número de coma flotante de 32 bits, t, en el flujo y devuelve una referencia al flujo.

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

Escribe el entero con signo, t, en el flujo y devuelve una referencia al flujo.

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

Escribe el entero largo con signo, t, en el flujo y devuelve una referencia al flujo.

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

Escribe el entero de 64 bits con signo, t, en el flujo y devuelve una referencia al flujo.

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

Escribe un entero de 64 bits sin signo, t, en el flujo y devuelve una referencia al flujo.

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

Escribe el entero corto con signo, t, en el flujo y devuelve una referencia al flujo.

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

Imprime la duración del tiempo duration en el flujo y devuelve una referencia al flujo. La cadena impresa es la representación numérica del periodo seguida de la unidad de tiempo, similar a lo que produciría la biblioteca estándar de C++ con std::ostream.

La unidad no está localizada.

Esta función se introdujo en Qt 6.6.

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

Escribe nullopt en el flujo.

Esta función se introdujo en Qt 6.7.

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

Escribe un entero sin signo, t, en el flujo y devuelve una referencia al flujo.

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

Escribe un entero largo sin signo, t, en el flujo y devuelve una referencia al flujo.

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

Escribe un entero corto sin signo, t, en el flujo y devuelve una referencia al flujo.

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

Asigna el flujo de depuración other a este flujo y devuelve una referencia a este flujo.

No miembros relacionados

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

Escribe el contenido de list en debug. T necesita soportar streaming en QDebug.

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

Escribe el contenido de map en debug. Tanto Key como T deben soportar el streaming en QDebug.

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

Escribe el contenido de hash en debug. Tanto Key como T deben soportar el streaming en QDebug.

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

Escribe el contenido de map en debug. Tanto Key como T necesitan soportar streaming en QDebug.

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

Escribe el contenido de set en debug. T necesita soportar streaming en QDebug.

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

Escribe el contenido de array en debug. T necesita soportar streaming en QDebug.

Esta función se introdujo en Qt 6.3.

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

Escribe el contenido de array en debug. T necesita soportar streaming en QDebug.

Esta función se introdujo en Qt 6.9.

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

Escribe el contenido de la lista vec en debug. T necesita soportar streaming en QDebug.

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

Escribe el contenido de map en debug. Tanto Key como T deben soportar el streaming en QDebug.

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

Escribe el contenido de map en debug. Tanto Key como T deben soportar el streaming en QDebug.

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

Escribe el contenido de multiset en debug. El tipo Key necesita soportar streaming en QDebug.

Esta función se introdujo en Qt 6.9.

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

Escribe el contenido de pair en debug. Tanto T1 como T2 deben soportar el streaming en QDebug.

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

Escribe el contenido de set en debug. El tipo Key necesita soportar streaming en QDebug.

Esta función se introdujo en 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)

Escribe el contenido de map en debug. Tanto Key como T necesitan soportar streaming en QDebug.

Esta función se introdujo en 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)

Escribe el contenido de unordered_set en debug. El tipo Key necesita soportar streaming en QDebug.

Esta función se introdujo en Qt 6.9.

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

Escribe el contenido del vector vec en debug. T necesita soportar streaming en QDebug.

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

Imprime el valor de ordenación Qt o std t en el objeto debug.

Restricciones

Participa en la resolución de sobrecargas sólo si T es uno de los objetos <Qt/Std>::<weak/partial/strong>_ordering.

Esta función se introdujo en Qt 6.9.

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

Escribe el contenido de cache en debug. T necesita soportar streaming en QDebug.

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

Escribe flags en debug.

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

Escribe el contenido de hash en debug. Tanto Key como T deben soportar la transmisión a QDebug.

Documentación de macros

QDebug qCritical()

Devuelve un objeto QDebug que registra un mensaje crítico en el gestor central de mensajes.

Ejemplo:

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

Utilizar qCritical() es una alternativa a qCritical(const char *, ...), que sigue el paradigma printf.

Tenga en cuenta que QDebug y los operadores de flujo específicos de tipo añaden diversos formatos para facilitar la lectura del mensaje de depuración. Consulte la documentación de formatting options para más detalles.

Para propósitos de depuración, a veces es conveniente dejar que el programa aborte para mensajes críticos. Esto le permite inspeccionar el volcado del núcleo, o conectar un depurador - véase también qFatal(). Para habilitar esto, establezca la variable de entorno QT_FATAL_CRITICALS a un número n. El programa termina entonces para el n-ésimo mensaje crítico. Es decir, si la variable de entorno se establece en 1, terminará en la primera llamada; si contiene el valor 10, saldrá en la décima llamada. Cualquier valor no numérico en la variable de entorno es equivalente a 1.

Nota: Esta macro es segura para hilos.

Véase también qCritical(const char *, ...) y qCCritical().

QDebug qDebug()

Devuelve un objeto QDebug que registra un mensaje de depuración en el gestor central de mensajes.

Ejemplo:

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

Utilizar qDebug() es una alternativa a qDebug(const char *, ...), que sigue el paradigma printf.

Tenga en cuenta que QDebug y los operadores de flujo específicos del tipo añaden diversos formatos para facilitar la lectura del mensaje de depuración. Consulte la documentación de formatting options para más detalles.

Esta función no hace nada si QT_NO_DEBUG_OUTPUT fue definida durante la compilación.

Nota: Esta macro es segura para hilos.

Véase también qDebug(const char *, ...) y qCDebug().

QDebug qFatal()

Devuelve un objeto QDebug que registra un mensaje fatal en el gestor central de mensajes.

Utilizar qFatal() es una alternativa a qFatal(const char *, ...), que sigue el paradigma printf.

Tenga en cuenta que QDebug y los operadores de flujo específicos del tipo añaden varios formatos para facilitar la lectura del mensaje de depuración. Consulte la documentación de formatting options para más detalles.

Si está utilizando el manejador de mensajes por defecto, el flujo devuelto abortará para crear un volcado del núcleo. En Windows, para construcciones de depuración, esta función reportará un _CRT_ERROR permitiéndole conectar un depurador a la aplicación.

Nota: Esta macro es thread-safe.

Véase también qFatal(const char *, ...) y qCFatal().

QDebug qInfo()

Devuelve un objeto QDebug que registra un mensaje informativo en el gestor central de mensajes.

Ejemplo:

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

El uso de qInfo() es una alternativa a qInfo(const char *, ...), que sigue el paradigma printf.

Tenga en cuenta que QDebug y los operadores de flujo específicos de tipo añaden diversos formatos para facilitar la lectura del mensaje de depuración. Consulte la documentación de formatting options para más detalles.

Esta función no hace nada si QT_NO_INFO_OUTPUT fue definida durante la compilación.

Nota: Esta macro es segura para hilos.

Véase también qInfo(const char *, ...) y qCInfo().

QDebug qWarning()

Devuelve un objeto QDebug que registra un mensaje de advertencia en el gestor central de mensajes.

Ejemplo:

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

Utilizar qWarning() es una alternativa a qWarning(const char *, ...), que sigue el paradigma printf.

Tenga en cuenta que QDebug y los operadores de flujo de tipo específico añaden varios formatos para hacer que el mensaje de depuración sea más fácil de leer. Consulte la documentación de formatting options para más detalles.

Esta función no hace nada si QT_NO_WARNING_OUTPUT fue definido durante la compilación.

Para propósitos de depuración, a veces es conveniente dejar que el programa aborte para mensajes de advertencia. Esto le permite inspeccionar el volcado del núcleo, o conectar un depurador - ver también qFatal(). Para habilitar esto, establezca la variable de entorno QT_FATAL_WARNINGS a un número n. El programa termina entonces para la n-ésima advertencia. Es decir, si la variable de entorno se establece en 1, terminará en la primera llamada; si contiene el valor 10, saldrá en la décima llamada. Cualquier valor no numérico en la variable de entorno es equivalente a 1.

Nota: Esta macro es segura para hilos.

Véase también qWarning(const char *, ...) y 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.