Spec-Zone.ru › Qt 5.6

Класс QDebug

Класс QDebug предоставляет выходной поток для отладочной информации. Подробнее...

Заголовок: #include <QDebug>
qmake: QT += core
  • Список всех членов, включая унаследованные

Открытые функции

QDebug(QIODevice *device)
QDebug(QString *string)
QDebug(QtMsgType type)
QDebug(const QDebug &other)
~QDebug()
bool autoInsertSpaces() const
QDebug & maybeQuote(char c = '"')
QDebug & maybeSpace()
QDebug & noquote()
QDebug & nospace()
QDebug & quote()
QDebug & resetFormat()
void setAutoInsertSpaces(bool b)
void setVerbosity(int verbosityLevel)
QDebug & space()
void swap(QDebug &other)
int verbosity() const
QDebug & operator<<(QChar t)
QDebug & operator<<(bool t)
QDebug & operator<<(char t)
QDebug & operator<<(signed short i)
QDebug & operator<<(unsigned short i)
QDebug & operator<<(char16_t t)
QDebug & operator<<(char32_t t)
QDebug & operator<<(signed int i)
QDebug & operator<<(unsigned int i)
QDebug & operator<<(signed long l)
QDebug & operator<<(unsigned long l)
QDebug & operator<<(qint64 i)
QDebug & operator<<(quint64 i)
QDebug & operator<<(float f)
QDebug & operator<<(double f)
QDebug & operator<<(const char *s)
QDebug & operator<<(const QString &s)
QDebug & operator<<(const QStringRef &s)
QDebug & operator<<(QLatin1String s)
QDebug & operator<<(const QByteArray &b)
QDebug & operator<<(const void *p)
QDebug & operator=(const QDebug &other)

Связанные внешние функции

QDebug operator<<(QDebug stream, const QList<T> &list)
QDebug operator<<(QDebug stream, const QVector<T> &vector)
QDebug operator<<(QDebug stream, const QSet<T> &set)
QDebug operator<<(QDebug stream, const QMap<Key, T> &map)
QDebug operator<<(QDebug stream, const QHash<Key, T> &hash)
QDebug operator<<(QDebug stream, const QPair<T1, T2> &pair)
QDebug operator<<(QDebug stream, const QFlags<T> &flag)

Подробное описание

Класс QDebug предоставляет выходной поток для отладочной информации.

QDebug используется, когда разработчику необходимо вывести отладочную или трассировочную информацию на устройство, в файл, строку или консоль.

Основное использование

В общем случае полезно вызвать функцию qDebug() для получения объекта QDebug по умолчанию, используемого для записи отладочной информации.

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

Это создает объект QDebug с помощью конструктора, который принимает значение QtMsgType QtDebugMsg. Аналогично, функции qWarning(), qCritical() и qFatal() также возвращают объекты QDebug для соответствующих типов сообщений.

Класс также предоставляет несколько конструкторов для других ситуаций, включая конструктор, который принимает QFile или любой другой подкласс QIODevice, используемый для записи отладочной информации в файлы и другие устройства. Конструктор, который принимает QString, используется для записи в строку для отображения или сериализации.

Параметры форматирования

QDebug форматирует вывод так, чтобы он был легко читаемым. Он автоматически добавляет пробелы между аргументами и добавляет кавычки вокруг аргументов QString, QByteArray, QChar.

Вы можете изменить эти параметры с помощью методов space(), nospace() и quote(), noquote(). Кроме того, манипуляторы QTextStream могут быть переданы в поток QDebug.

QDebugStateSaver ограничивает изменения форматирования текущим объёмом. resetFormat() сбрасывает параметры до значений по умолчанию.

Написание пользовательских типов в поток

Многие стандартные типы могут быть записаны в объекты QDebug, и Qt предоставляет поддержку большинства типов значений Qt. Для добавления поддержки пользовательских типов необходимо реализовать оператор потоковой передачи, как в следующем примере:

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

    return debug;
}

Это описано в документах Методы отладки и Создание пользовательских типов Qt.

Документация по членам-функциям

QDebug::QDebug(QIODevice *device)

Конструирует поток отладки, который записывает в указанный device.

QDebug::QDebug(QString *string)

Конструирует поток отладки, который записывает в указанный string.

QDebug::QDebug(QtMsgType type)

Конструирует поток отладки, который записывает в обработчик для типа сообщения, заданного type.

QDebug::QDebug(const QDebug &other)

Конструирует копию потока отладки other.

QDebug::~QDebug()

Очищает все ожидающие данные для записи и уничтожает поток отладки.

bool QDebug::autoInsertSpaces() const

Возвращает true, если данный экземпляр QDebug будет автоматически вставлять пробелы между записями.

Эта функция была добавлена в Qt 5.0.

См. также setAutoInsertSpaces() и QDebugStateSaver.

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

Записывает символ c в поток отладки в зависимости от текущего параметра автоматической вставки кавычек и возвращает ссылку на поток.

Символ по умолчанию — двойная кавычка ".

Эта функция была добавлена в Qt 5.4.

См. также quote() и noquote().

QDebug &QDebug::maybeSpace()

Записывает пробел в поток отладки, в зависимости от текущего параметра автоматической вставки пробелов, и возвращает ссылку на поток.

См. также space() и nospace().

QDebug &QDebug::noquote()

Отключает автоматическую вставку кавычек вокруг содержимого QChar, QString и QByteArray и возвращает ссылку на поток.

При отключении кавычек эти типы выводятся без кавычек и без экранирования непечатаемых символов.

Эта функция была добавлена в Qt 5.4.

См. также quote() и maybeQuote().

QDebug &QDebug::nospace()

Отключает автоматическую вставку пробелов и возвращает ссылку на поток.

См. также space() и maybeSpace().

QDebug &QDebug::quote()

Включает автоматическую вставку кавычек вокруг содержимого QChar, QString и QByteArray и возвращает ссылку на поток.

Кавычки включены по умолчанию.

Эта функция была добавлена в Qt 5.4.

См. также noquote() и maybeQuote().

QDebug &QDebug::resetFormat()

Сбрасывает параметры форматирования потока, возвращая его к исходному состоянию.

Эта функция была добавлена в Qt 5.4.

См. также space() и quote().

void QDebug::setAutoInsertSpaces(bool b)

Включает автоматическую вставку пробелов между записями, если b истинно; в противном случае автоматическая вставка пробелов отключается.

Эта функция была добавлена в Qt 5.0.

См. также autoInsertSpaces() и QDebugStateSaver.

void QDebug::setVerbosity(int verbosityLevel)

Устанавливает уровень детализации потока в verbosityLevel.

Допустимый диапазон — от 0 до 7. Значение по умолчанию — 2.

Эта функция была добавлена в Qt 5.6.

См. также verbosity().

QDebug &QDebug::space()

Записывает пробел в поток отладки и возвращает ссылку на поток.

Поток запоминает, что автоматическая вставка пробелов включена для будущих записей.

См. также nospace() и maybeSpace().

void QDebug::swap(QDebug &other)

Меняет местами этот экземпляр потока отладки с other. Эта функция очень быстрая и никогда не терпит неудачу.

Эта функция была добавлена в Qt 5.0.

int QDebug::verbosity() const

Возвращает уровень детализации потока отладки.

Операторы потоковой передачи могут проверять значение, чтобы определить, нужен ли подробный вывод, и печатать больше информации в зависимости от уровня. Более высокие значения указывают на то, что требуется больше информации.

Допустимый диапазон — от 0 до 7. Значение по умолчанию — 2.

Эта функция была добавлена в Qt 5.6.

См. также setVerbosity().

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

Записывает символ t в поток и возвращает ссылку на поток. Обычно QDebug печатает управляющие символы и символы не-ASCII как их последовательности C-экранирования или их значения Unicode (\u1234). Чтобы выводить непечатаемые символы без преобразования, включите функцию noquote(), но имейте в виду, что некоторые бэкэнды QDebug могут не быть 8-битно-чистыми и не смогут представить t.

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

Записывает булево значение t в поток и возвращает ссылку на поток.

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

Записывает символ t в поток и возвращает ссылку на поток.

QDebug &QDebug::operator<<(signed short i)

Записывает целое число типа signed short, i, в поток и возвращает ссылку на поток.

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

Записывает целое число типа unsigned short, i, в поток и возвращает ссылку на поток.

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

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

QDebug &QDebug::operator<<(signed int i)

Записывает целое число типа signed int, i, в поток и возвращает ссылку на поток.

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

Записывает целое число типа unsigned int, i, в поток и возвращает ссылку на поток.

QDebug &QDebug::operator<<(signed long l)

Записывает целое число типа signed long, l, в поток и возвращает ссылку на поток.

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

Записывает целое число типа unsigned long, l, в поток и возвращает ссылку на поток.

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

Записывает целое число типа signed 64-бит, i, в поток и возвращает ссылку на поток.

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

Записывает целое число типа unsigned 64-бит, i, в поток и возвращает ссылку на поток.

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

Записывает 32-битное число с плавающей точкой, f, в поток и возвращает ссылку на поток.

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

Записывает 64-битное число с плавающей точкой, f, в поток и возвращает ссылку на поток.

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

Записывает строку с завершением '\0', s, в поток и возвращает ссылку на поток. Строка никогда не заключается в кавычки и не преобразуется при выводе, но обратите внимание, что некоторые бэкэнды QDebug могут не поддерживать 8-битную чистоту.

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

Записывает строку, s, в поток и возвращает ссылку на поток. Обычно QDebug выводит строку в кавычках и преобразует непечатаемые символы в их значения Unicode (\u1234).

Чтобы выводить непечатаемые символы без преобразования, включите функциональность noquote(). Обратите внимание, что некоторые бэкэнды QDebug могут не поддерживать 8-битную чистоту.

Примеры вывода:

QString s;

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

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

s = "\033";                 // escape character
qDebug() << s;              // prints: "\u001B"

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

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

s = "a\u0301";              // "a" followed by COMBINING ACUTE ACCENT
qDebug() << s;              // prints: "á";

s = "\u0430\u0301";         // CYRILLIC SMALL LETTER A followed by COMBINING ACUTE ACCENT
qDebug() << s;              // prints: "а́"

QDebug &QDebug::operator<<(const QStringRef &s)

Записывает строку, s, в поток и возвращает ссылку на поток. Обычно QDebug выводит строку в кавычках и преобразует непечатаемые символы в их значения Unicode (\u1234).

Чтобы выводить непечатаемые символы без преобразования, включите функциональность noquote(). Обратите внимание, что некоторые бэкэнды QDebug могут не поддерживать 8-битную чистоту.

См. перегрузку для QString для примеров.

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

Записывает строку, s, в поток и возвращает ссылку на поток. Обычно QDebug выводит строку в кавычках и преобразует непечатаемые символы в их значения Unicode (\u1234).

Чтобы выводить непечатаемые символы без преобразования, включите функциональность noquote(). Обратите внимание, что некоторые бэкэнды QDebug могут не поддерживать 8-битную чистоту.

См. перегрузку для QString для примеров.

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

Записывает массив байтов, b, в поток и возвращает ссылку на поток. Обычно QDebug выводит массив в кавычках и преобразует управляющие или не-ASCII символы в их последовательности C-экранирования (\xAB). Таким образом, вывод всегда 7-битный чистый, и строку можно скопировать из вывода и вставить обратно в исходный код C++, если необходимо.

Чтобы выводить непечатаемые символы без преобразования, включите функциональность noquote(). Обратите внимание, что некоторые бэкэнды QDebug могут не поддерживать 8-битную чистоту.

Примеры вывода:

QByteArray ba;

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

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

ba = "\033";                 // escape character
qDebug() << ba;              // prints: "\x1B"

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

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

Обратите внимание, как QDebug необходимо было закрыть и открыть строку так, как C и C++ языки конкатенируют строковые литералы, чтобы буква 'b' не интерпретировалась как часть предыдущей шестнадцатеричной последовательности экранирования.

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

Записывает указатель, p, в поток и возвращает ссылку на поток.

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

Присваивает поток отладки other данному потоку и возвращает ссылку на этот поток.

Связанные нечленные функции

QDebug operator<<(QDebug stream, const QList<T> &list)

Записывает содержимое list в stream. T необходимо поддерживать потоковую передачу в QDebug.

QDebug operator<<(QDebug stream, const QVector<T> &vector)

Записывает содержимое vector в stream. T необходимо поддерживать потоковую передачу в QDebug.

QDebug operator<<(QDebug stream, const QSet<T> &set)

Записывает содержимое set в stream. T необходимо поддерживать потоковую передачу в QDebug.

QDebug operator<<(QDebug stream, const QMap<Key, T> &map)

Записывает содержимое map в stream. Как Key так и T необходимо поддерживать потоковую передачу в QDebug.

QDebug operator<<(QDebug stream, const QHash<Key, T> &hash)

Записывает содержимое hash в stream. Как Key так и T необходимо поддерживать потоковую передачу в QDebug.

QDebug operator<<(QDebug stream, const QPair<T1, T2> &pair)

Записывает содержимое pair в stream. Как T1 так и T2 необходимо поддерживать потоковую передачу в QDebug.

QDebug operator<<(QDebug stream, const QFlags<T> &flag)

Записывает flag в stream.

Эта функция была добавлена в Qt 4.7.

© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/archives/qt-5.6/qdebug.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API