Spec-Zone.ru › Qt 5.11

Класс QDebug

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

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

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

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()
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<<(short t)
QDebug & operator<<(unsigned short t)
QDebug & operator<<(char16_t t)
QDebug & operator<<(char32_t t)
QDebug & operator<<(int t)
QDebug & operator<<(unsigned int t)
QDebug & operator<<(long t)
QDebug & operator<<(unsigned long t)
QDebug & operator<<(qint64 t)
QDebug & operator<<(quint64 t)
QDebug & operator<<(float t)
QDebug & operator<<(double t)
QDebug & operator<<(const char *t)
QDebug & operator<<(const QString &t)
QDebug & operator<<(const QStringRef &t)
QDebug & operator<<(QStringView s)
QDebug & operator<<(QLatin1String t)
QDebug & operator<<(const QByteArray &t)
QDebug & operator<<(const void *t)
QDebug & operator=(const QDebug &other)

Связанные нечлены

QDebug operator<<(QDebug debug, const QList<T> &list)
QDebug operator<<(QDebug debug, const std::list<T, Alloc> &vec)
QDebug operator<<(QDebug debug, const QVector<T> &vec)
QDebug operator<<(QDebug debug, const std::vector<T, Alloc> &vec)
QDebug operator<<(QDebug debug, const QSet<T> &set)
QDebug operator<<(QDebug debug, const QMap<Key, T> &map)
QDebug operator<<(QDebug debug, const std::map<Key, T, Compare, Alloc> &map)
QDebug operator<<(QDebug debug, const std::multimap<Key, T, Compare, Alloc> &map)
QDebug operator<<(QDebug debug, const QHash<Key, T> &hash)
QDebug operator<<(QDebug debug, const QPair<T1, T2> &pair)
QDebug operator<<(QDebug debug, const QFlags<T> &flags)

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

Класс 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 t)

Создаёт поток отладки, записывающий в обработчик для типа сообщения t.

QDebug::QDebug(const QDebug &o)

Создаёт копию другого потока отладки o.

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 равно true; в противном случае автоматическая вставка пробелов отключается.

Эта функция была добавлена в 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<<(short t)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

QString s;

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

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

s = "\033";                 // 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 &t)

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

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

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

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

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

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

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

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

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

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

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

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

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

Записывает массив байтов, t, в поток и возвращает ссылку на поток. Обычно 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 *t)

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

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

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

Связанные нечлены

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

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

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

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

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

QDebug operator<<(QDebug debug, const QVector<T> &vec)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Выводит flags в debug.

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

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

Spec-Zone.ru

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