Spec-Zone.ru › Qt 5.9

Класс 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 std::list<T, Alloc> &list)
QDebug operator<<(QDebug stream, const QVector<T> &vector)
QDebug operator<<(QDebug stream, const std::vector<T, Alloc> &vector)
QDebug operator<<(QDebug stream, const QSet<T> &set)
QDebug operator<<(QDebug stream, const QMap<Key, T> &map)
QDebug operator<<(QDebug stream, const std::map<Key, T, Compare, Alloc> &map)
QDebug operator<<(QDebug stream, const std::multimap<Key, T, Compare, Alloc> &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 равно 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<<(signed short i)

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

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

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

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<<(signed int i)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Записывает строку с завершающим нулём 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 std::list<T, Alloc> &list)

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

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

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

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

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

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

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

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 std::map<Key, T, Compare, Alloc> &map)

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

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

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

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

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

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/qt-5.9/qdebug.html

Spec-Zone.ru

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