QDebug Class
Die Klasse „QDebug“ stellt einen Ausgabestrom für Debugging-Informationen bereit. Mehr...
| Header: | #include <QDebug> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS Core) target_link_libraries(mytarget PRIVATE Qt6::Core) |
| qmake: | QT += core |
| Erbt von: | QIODeviceBase |
| Wird vererbt von: |
- Liste aller Mitglieder, einschließlich geerbter Mitglieder
- QDebug gehört zu den implizit gemeinsam genutzten Klassen.
Öffentliche Typen
| enum | VerbosityLevel { MinimumVerbosity, DefaultVerbosity, MaximumVerbosity } |
Öffentliche Funktionen
(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) |
Statische öffentliche Mitglieder
Verwandte Nicht-Mitglieder
| 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) |
Makros
Ausführliche Beschreibung
QDebug wird immer dann verwendet, wenn der Entwickler Debugging- oder Trace-Informationen an ein Gerät, in eine Datei, in eine Zeichenkette oder auf die Konsole ausgeben muss.
Grundlegende Verwendung
In der Regel ist es sinnvoll, die Funktion ` qDebug()` aufzurufen, um ein Standard-QDebug-Objekt zu erhalten, das zum Schreiben von Debugging-Informationen verwendet werden kann.
qDebug () << „Datum:“ << QDate::currentDate();
qDebug() << "Types:" << QString("String") << QChar('x') << QRect(0, 10, 50, 40);
qDebug() << "Custom coordinate type:" << coordinate;Hiermit wird ein QDebug-Objekt mithilfe des Konstruktors erstellt, der einen Wert vom Typ „ QtMsgType “ mit dem Wert „ QtDebugMsg “ akzeptiert. In ähnlicher Weise geben auch die Funktionen „ qInfo()“, „ qWarning()“, „ qCritical()“ und „ qFatal()“ QDebug-Objekte für die entsprechenden Meldungstypen zurück.
Die Klasse stellt außerdem mehrere Konstruktoren für andere Situationen bereit, darunter einen Konstruktor, der ein ` QFile ` oder eine beliebige andere Unterklasse von ` QIODevice ` akzeptiert, die zum Schreiben von Debugging-Informationen in Dateien und auf andere Geräte verwendet wird. Der Konstruktor, der ein ` QString ` akzeptiert, wird zum Schreiben in eine Zeichenkette zur Anzeige oder Serialisierung verwendet.
Formatierungsoptionen
QDebug formatiert die Ausgabe so, dass sie leicht lesbar ist. Es fügt automatisch Leerzeichen zwischen den Argumenten ein und setzt Anführungszeichen um die Argumente vom Typ „ QString “, „ QByteArray “ und „ QChar “.
Sie können diese Optionen über die Methoden ` space()`, ` nospace()`, ` quote()` und ` noquote()` anpassen. Darüber hinaus kann ` QTextStream manipulators ` in einen QDebug-Stream weitergeleitet werden.
QDebugStateSaver beschränkt die Formatierungsänderungen auf den aktuellen Geltungsbereich. „ resetFormat “ () setzt die Optionen auf die Standardwerte zurück.
Schreiben benutzerdefinierter Typen in einen Stream
Viele Standardtypen können in QDebug-Objekte geschrieben werden, und Qt bietet Unterstützung für die meisten Qt-Werttypen. Um Unterstützung für benutzerdefinierte Typen hinzuzufügen, müssen Sie einen Streaming-Operator implementieren, wie im folgenden Beispiel gezeigt:
QDebug operator<<(QDebug debug, const Coordinate &c)
{
QDebugStateSaver saver(debug);
debug.nospace() << '(' << c.x() << ", " << c.y() << ')';
return debug;
}Dies wird in den Dokumenten „Debugging-Techniken“ und „Erstellen benutzerdefinierter Qt-Typen“ beschrieben.
Dokumentation zu Mitgliedstypen
enum QDebug::VerbosityLevel
Diese Enumeration beschreibt die Bandbreite der Ausführlichkeitsstufen.
| Konstante | Wert |
|---|---|
QDebug::MinimumVerbosity | 0 |
QDebug::DefaultVerbosity | 2 |
QDebug::MaximumVerbosity | 7 |
Siehe auch verbosity() und setVerbosity().
Dokumentation der Mitgliedsfunktionen
[explicit, since 6.9] QDebug::QDebug(QByteArray *byteArray)
Erstellt einen Debug-Stream, der in den angegebenen „ byteArray “ schreibt.
Die Daten werden in UTF-8 kodiert, was beispielsweise unter Windows möglicherweise nicht mit der System-Locale übereinstimmt.
Bei Objekten, die mit diesem Konstruktor instanziiert wurden, werden die Daten möglicherweise zwischengespeichert und erst dann in das Byte-Array geschrieben, wenn der Stream geleert wird, beispielsweise durch Aufruf von ` Qt::flush`.
Diese Funktion wurde in Qt 6.9 eingeführt.
Siehe auch ` QTextStream manipulators`.
[explicit] QDebug::QDebug(QIODevice *device)
Erstellt einen Debug-Stream, der in die angegebene „ device “ schreibt.
[explicit] QDebug::QDebug(QString *string)
Erstellt einen Debug-Stream, der in die angegebene „ string “ schreibt.
[explicit] QDebug::QDebug(QtMsgType t)
Erstellt einen Debug-Stream, der in den Handler für den Nachrichtentyp „ t “ schreibt.
QDebug::QDebug(const QDebug &o)
Erstellt eine Kopie des anderen Debug-Streams o.
[noexcept] QDebug::~QDebug()
Leert alle noch ausstehenden Schreibvorgänge und löscht den Debug-Stream.
bool QDebug::autoInsertSpaces() const
Gibt „ true “ zurück, wenn diese „ QDebug “-Instanz automatisch Leerzeichen zwischen den Schreibvorgängen einfügt.
Siehe auch ` setAutoInsertSpaces()` und ` QDebugStateSaver`.
QDebug &QDebug::maybeQuote(char c = '"')
Schreibt ein Zeichen c in den Debug-Stream, abhängig von der aktuellen Einstellung für das automatische Einfügen von Anführungszeichen, und gibt eine Referenz auf den Stream zurück.
Das Standardzeichen ist ein doppeltes Anführungszeichen ".
Siehe auch ` quote()` und ` noquote()`.
QDebug &QDebug::maybeSpace()
Schreibt ein Leerzeichen in den Debug-Stream, abhängig von der aktuellen Einstellung für das automatische Einfügen von Leerzeichen, und gibt eine Referenz auf den Stream zurück.
Siehe auch space() und nospace().
QDebug &QDebug::noquote()
Deaktiviert das automatische Einfügen von Anführungszeichen um Inhalte unter QChar, QString und QByteArray und gibt einen Verweis auf den Stream zurück.
Wenn die Anführungszeichen deaktiviert sind, werden diese Typen ohne Anführungszeichen und ohne Escape-Zeichen für nicht druckbare Zeichen ausgegeben.
Siehe auch quote() und maybeQuote().
QDebug &QDebug::nospace()
Deaktiviert das automatische Einfügen von Leerzeichen und gibt einen Verweis auf den Stream zurück.
Siehe auch space() und maybeSpace().
QDebug &QDebug::quote()
Aktiviert das automatische Einfügen von Anführungszeichen um Inhalte unter QChar, QString und QByteArray und gibt einen Verweis auf den Stream zurück.
Die Anführungszeichen werden standardmäßig gesetzt.
Siehe auch noquote() und maybeQuote().
[noexcept, since 6.7] bool QDebug::quoteStrings() const
Gibt „ true “ zurück, wenn diese „ QDebug “-Instanz die in sie eingelesenen Zeichenfolgen in Anführungszeichen setzt (was die Standardeinstellung ist).
Diese Funktion wurde in Qt 6.7 eingeführt.
Siehe auch „ QDebugStateSaver“ , „ quote()“, „ noquote()“ und „ setQuoteStrings()“.
QDebug &QDebug::resetFormat()
Setzt die Formatierungsoptionen des Streams zurück und versetzt ihn damit in seinen ursprünglichen Zustand.
Siehe auch space() und quote().
void QDebug::setAutoInsertSpaces(bool b)
Aktiviert das automatische Einfügen von Leerzeichen zwischen Schreibvorgängen, wenn „ b “ auf „true“ gesetzt ist; andernfalls ist das automatische Einfügen von Leerzeichen deaktiviert.
Siehe auch „ autoInsertSpaces()“ und „ QDebugStateSaver “.
[since 6.7] void QDebug::setQuoteStrings(bool b)
Aktiviert die Anführungszeichenumschaltung für Zeichenfolgen, die in diese „ QDebug “-Instanz gestreamt werden, sofern „ b “ auf „ true “ gesetzt ist; andernfalls ist die Anführungszeichenumschaltung deaktiviert.
Standardmäßig werden Zeichenfolgen in Anführungszeichen gesetzt.
Diese Funktion wurde in Qt 6.7 eingeführt.
Siehe auch „ QDebugStateSaver“ , „ quote()“, „ noquote()“ und „ quoteStrings()“.
void QDebug::setVerbosity(int verbosityLevel)
Legt die Ausführlichkeit des Streams auf „ verbosityLevel “ fest.
Der zulässige Bereich liegt zwischen 0 und 7. Der Standardwert ist 2.
Siehe auch „ verbosity()“ und „ VerbosityLevel “.
QDebug &QDebug::space()
Schreibt ein Leerzeichen in den Debug-Stream und gibt eine Referenz auf den Stream zurück.
Der Stream merkt sich, dass das automatische Einfügen von Leerzeichen für zukünftige Schreibvorgänge aktiviert ist.
Siehe auch ` nospace()` und ` maybeSpace()`.
[noexcept] void QDebug::swap(QDebug &other)
Ersetzt diese Debug-Stream-Instanz durch „ other “. Dieser Vorgang ist sehr schnell und schlägt niemals fehl.
[static, since 6.9] template <typename T> QByteArray QDebug::toBytes(const T &object)
Dies entspricht der Übergabe von ` object ` an ` QDebug::toString(object).toUtf8()`, ist jedoch effizienter.
Diese Funktion wurde in Qt 6.9 eingeführt.
Siehe auch toString().
[static, since 6.0] template <typename T> QString QDebug::toString(const T &object)
Leitet „ object “ in eine „ QDebug “-Instanz, die eine Zeichenkette verarbeitet, und gibt anschließend diese Zeichenkette zurück.
Diese Funktion ist nützlich in Fällen, in denen Sie die textuelle Darstellung eines Objekts zum Debuggen benötigen, aber ` operator<<` nicht verwenden können. Zum Beispiel:
Die Zeichenkette wird mit ` nospace()` gestreamt.
Diese Funktion wurde in Qt 6.0 eingeführt.
Siehe auch ` toBytes()`.
int QDebug::verbosity() const
Gibt den Ausführlichkeitsgrad des Debug-Streams zurück.
Streaming-Operatoren können den Wert überprüfen, um zu entscheiden, ob eine ausführliche Ausgabe gewünscht ist, und je nach Stufe weitere Informationen ausgeben. Höhere Werte bedeuten, dass mehr Informationen gewünscht sind.
Der zulässige Bereich liegt zwischen 0 und 7. Der Standardwert ist 2.
Siehe auch setVerbosity() und VerbosityLevel.
QDebug &QDebug::verbosity(int verbosityLevel)
Legt die Ausführlichkeitsstufe des Streams auf „ verbosityLevel “ fest und gibt eine Referenz auf den Stream zurück.
Der zulässige Bereich liegt zwischen 0 und 7. Der Standardwert ist 2.
Siehe auch „ verbosity()“, „ setVerbosity()“ und „ VerbosityLevel “.
[since 6.0] QDebug &QDebug::operator<<(QByteArrayView t)
Schreibt die Daten des beobachteten Byte-Arrays, t, in den Stream und gibt eine Referenz auf den Stream zurück.
Normalerweise gibt „ QDebug “ die Daten in Anführungszeichen aus und wandelt Steuerzeichen sowie Nicht-US-ASCII-Zeichen in ihre C-Escape-Sequenzen um (\xAB). Auf diese Weise ist die Ausgabe stets 7-Bit-kompatibel, und die Zeichenkette kann bei Bedarf aus der Ausgabe kopiert und wieder in C++-Quelldateien eingefügt werden.
Um nicht druckbare Zeichen ohne Umwandlung auszugeben, aktivieren Sie die Funktion ` noquote()`. Beachten Sie, dass einige ` QDebug `-Backends möglicherweise nicht 8-Bit-kompatibel sind.
Beispiele finden Sie in der Überladung von ` QByteArray `.
Diese Funktion wurde in Qt 6.0 eingeführt.
QDebug &QDebug::operator<<(QChar t)
Schreibt das Zeichen „ t “ in den Stream und gibt eine Referenz auf den Stream zurück. Normalerweise gibt „ QDebug “ Steuerzeichen und Nicht-US-ASCII-Zeichen als ihre C-Escape-Sequenzen oder ihren Unicode-Wert (\u1234) aus. Um nicht druckbare Zeichen ohne Umwandlung auszugeben, aktivieren Sie die Funktion „ noquote()“. Beachten Sie jedoch, dass einige Backends von „ QDebug “ möglicherweise nicht 8-Bit-kompatibel sind und „ t “ möglicherweise nicht darstellen können.
QDebug &QDebug::operator<<(QLatin1StringView t)
Schreibt die Zeichenkette „ t “ in den Stream und gibt eine Referenz auf den Stream zurück. Normalerweise gibt „ QDebug “ die Zeichenkette in Anführungszeichen aus und wandelt nicht druckbare Zeichen in ihre Unicode-Werte um (\u1234).
Um nicht druckbare Zeichen ohne Umwandlung auszugeben, aktivieren Sie die Funktion „ noquote()“. Beachten Sie, dass einige „ QDebug “-Backends möglicherweise nicht 8-Bit-kompatibel sind.
Beispiele finden Sie in der Überladung von ` QString `.
QDebug &QDebug::operator<<(QStringView s)
Schreibt die Zeichenfolgenansicht „ s “ in den Stream und gibt eine Referenz auf den Stream zurück. Normalerweise gibt „ QDebug “ die Zeichenfolge in Anführungszeichen aus und wandelt nicht druckbare Zeichen in ihre Unicode-Werte um (\u1234).
Um nicht druckbare Zeichen ohne Umwandlung auszugeben, aktivieren Sie die Funktion „ noquote()“. Beachten Sie, dass einige Backends von „ QDebug “ möglicherweise nicht 8-Bit-kompatibel sind.
Beispiele finden Sie in der Überladung von ` QString `.
[since 6.0] QDebug &QDebug::operator<<(QUtf8StringView s)
Schreibt die Zeichenfolgenansicht „ s “ in den Stream und gibt eine Referenz auf den Stream zurück.
Normalerweise gibt ` QDebug ` die Daten in Anführungszeichen aus und wandelt Steuerzeichen oder Nicht-US-ASCII-Zeichen in ihre C-Escape-Sequenzen um (\xAB). Auf diese Weise ist die Ausgabe stets 7-Bit-kompatibel, und die Zeichenkette kann bei Bedarf aus der Ausgabe kopiert und wieder in C++-Quellcode eingefügt werden.
Um nicht druckbare Zeichen ohne Umwandlung auszugeben, aktivieren Sie die Funktion ` noquote()`. Beachten Sie, dass einige ` QDebug `-Backends möglicherweise nicht 8-Bit-kompatibel sind.
Diese Funktion wurde in Qt 6.0 eingeführt.
[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)
Gibt die textuelle Darstellung der 128-Bit-Ganzzahl i aus.
Hinweis: Dieser Operator ist nur verfügbar, wenn Qt 128-Bit-Ganzzahltypen unterstützt. Wenn in Ihrer Build-Konfiguration 128-Bit-Ganzzahltypen verfügbar sind, die Qt-Bibliotheken jedoch ohne diese kompiliert wurden, gibt der Operator stattdessen eine Warnung aus.
Hinweis: Da es sich bei dem Operator um eine Funktionsvorlage handelt, werden keine impliziten Konvertierungen an seinem Argument vorgenommen. Es muss sich genau um einen `qint128`- oder `quint128`-Wert handeln.
Diese Funktionen wurden in Qt 6.7 eingeführt.
Siehe auch „ QT_SUPPORTS_INT128 “.
QDebug &QDebug::operator<<(bool t)
Schreibt den booleschen Wert „ t “ in den Stream und gibt eine Referenz auf den Stream zurück.
QDebug &QDebug::operator<<(char t)
Schreibt das Zeichen „ t “ in den Stream und gibt eine Referenz auf den Stream zurück.
QDebug &QDebug::operator<<(char16_t t)
Schreibt das UTF-16-Zeichen „ t “ in den Stream und gibt eine Referenz auf den Stream zurück.
QDebug &QDebug::operator<<(char32_t t)
Schreibt das UTF-32-Zeichen „ t “ in den Stream und gibt eine Referenz auf den Stream zurück.
QDebug &QDebug::operator<<(const QByteArray &t)
Schreibt das Byte-Array „ t “ in den Stream und gibt eine Referenz auf den Stream zurück. Normalerweise gibt QDebug das Array in Anführungszeichen aus und wandelt Steuerzeichen oder Nicht-US-ASCII-Zeichen in ihre C-Escape-Sequenzen um (\xAB). Auf diese Weise ist die Ausgabe stets 7-Bit-kompatibel, und die Zeichenkette kann bei Bedarf aus der Ausgabe kopiert und wieder in C++-Quellcode eingefügt werden.
Um nicht druckbare Zeichen ohne Umwandlung auszugeben, aktivieren Sie die Funktion „ noquote “ (). Beachten Sie, dass einige „ QDebug “-Backends möglicherweise nicht 8-Bit-kompatibel sind.
Ausgabebeispiele:
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-Zeichen
qDebug() << ba; // prints: "\x1B"
ba = "\xC3\xA1";
qDebug() << ba; // prints: "\xC3\xA1"
ba = QByteArray("a\0b", 3);
qDebug() << ba; // prints: "\a\x00""b"Beachten Sie, dass QDebug die Zeichenkette auf die gleiche Weise schließen und erneut öffnen musste, wie es in den Sprachen C und C++ bei der Verkettung von Zeichenfolgenliteralen üblich ist, damit der Buchstabe „b“ nicht als Teil der vorhergehenden hexadezimalen Escape-Sequenz interpretiert wird.
QDebug &QDebug::operator<<(const QString &t)
Schreibt die Zeichenkette „ t “ in den Stream und gibt eine Referenz auf den Stream zurück. Normalerweise gibt „ QDebug “ die Zeichenkette in Anführungszeichen aus und wandelt nicht druckbare Zeichen in ihre Unicode-Werte um (\u1234).
Um nicht druckbare Zeichen ohne Umwandlung auszugeben, aktivieren Sie die Funktion „ noquote()“. Beachten Sie, dass einige Backends von „ QDebug “ möglicherweise nicht 8-Bit-kompatibel sind.
Ausgabebeispiele:
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-Zeichen
qDebug() << s; // prints: "\u001B"
s = "\u00AD"; // WEICHER BINDESTRICH
qDebug() << s; // prints: "\u00AD"
s = "\u00E1"; // KLEINER LATINISCHER BUCHSTABE A MIT AKUT
qDebug() << s; // prints: "á"
s = "a\u0301"; // „a“, gefolgt von einem „COMBINING ACUTE ACCENT“
qDebug() << s; // prints: "á";
s = "\u0430\u0301"; // Kyrillischer Kleinbuchstabe A, gefolgt von einem kombinierenden Akut-Akzent
qDebug() << s; // prints: "а́"QDebug &QDebug::operator<<(const char *t)
Schreibt die durch „\0 “ begrenzte UTF-8-Zeichenkette „ t “ in den Stream und gibt eine Referenz auf den Stream zurück. Die Zeichenkette wird bei der Ausgabe niemals in Anführungszeichen gesetzt oder mit Escape-Zeichen versehen. Beachten Sie, dass QDebug intern als UTF-16 gepuffert wird und möglicherweise mithilfe des Codecs der Locale in 8-Bit umgewandelt werden muss, um bestimmte Backends nutzen zu können, was zu einer verstümmelten Ausgabe (Mojibake) führen kann. Es wird empfohlen, sich auf US-ASCII-Zeichenketten zu beschränken.
[since 6.0] QDebug &QDebug::operator<<(const char16_t *t)
Schreibt die mit „'\0 “ abgeschlossene UTF-16-Zeichenkette „ t “ in den Stream und gibt eine Referenz auf den Stream zurück. Die Zeichenkette wird bei der Ausgabe niemals in Anführungszeichen gesetzt oder mit Escape-Zeichen versehen. Beachten Sie, dass „ QDebug “ intern als UTF-16 gepuffert wird und möglicherweise mithilfe des Codecs der Locale in 8-Bit umgewandelt werden muss, um bestimmte Backends nutzen zu können, was zu verzerrten Ausgaben (Mojibake) führen kann. Es wird empfohlen, sich auf US-ASCII-Zeichenfolgen zu beschränken.
Diese Funktion wurde in Qt 6.0 eingeführt.
[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)
Schreibt die Zeichenkette oder die Zeichenkettenansicht „ s “ in den Stream und gibt eine Referenz auf den Stream zurück.
Diese Operatoren nehmen nur dann an der Überladungsauflösung teil, wenn ` Char ` einer der folgenden Werte ist:
- char
- char8_t (nur C++20)
- char16_t
- char32_t
- wchar_t
Diese Funktionen wurden in Qt 6.5 eingeführt.
[since 6.7] template <typename T> requires if_streamable<T> QDebug &QDebug::operator<<(const std::optional<T> &opt)
Schreibt den Inhalt von opt (oder nullopt, falls nicht festgelegt) in diesen Stream. T muss das Streamen in QDebug unterstützen.
Diese Funktion wurde in Qt 6.7 eingeführt.
[since 6.9] template <typename... Ts> requires if_streamable<Ts...> QDebug &QDebug::operator<<(const std::tuple<Ts...> &tuple)
Schreibt den Inhalt von ` tuple ` in den Stream. Alle ` Ts... ` müssen das Streaming in ` QDebug` unterstützen.
Diese Funktion wurde in Qt 6.9 eingeführt.
QDebug &QDebug::operator<<(const void *t)
Schreibt einen Zeiger „ t “ in den Stream und gibt einen Verweis auf den Stream zurück.
QDebug &QDebug::operator<<(double t)
Schreibt die 64-Bit-Gleitkommazahl „ t “ in den Stream und gibt eine Referenz auf den Stream zurück.
QDebug &QDebug::operator<<(float t)
Schreibt die 32-Bit-Gleitkommazahl „ t “ in den Stream und gibt eine Referenz auf den Stream zurück.
QDebug &QDebug::operator<<(int t)
Schreibt die vorzeichenbehaftete Ganzzahl „ t “ in den Stream und gibt eine Referenz auf den Stream zurück.
QDebug &QDebug::operator<<(long t)
Schreibt die vorzeichenbehaftete lange Ganzzahl „ t “ in den Stream und gibt eine Referenz auf den Stream zurück.
QDebug &QDebug::operator<<(qint64 t)
Schreibt die vorzeichenbehaftete 64-Bit-Ganzzahl „ t “ in den Stream und gibt eine Referenz auf den Stream zurück.
QDebug &QDebug::operator<<(quint64 t)
Schreibt die vorzeichenlose 64-Bit-Ganzzahl „ t “ in den Stream und gibt eine Referenz auf den Stream zurück.
QDebug &QDebug::operator<<(short t)
Schreibt die vorzeichenbehaftete kurze Ganzzahl „ t “ in den Stream und gibt eine Referenz auf den Stream zurück.
[since 6.6] template <typename Rep, typename Period> QDebug &QDebug::operator<<(std::chrono::duration<Rep, Period> duration)
Gibt die Zeitdauer „ duration “ in den Stream aus und gibt eine Referenz auf den Stream zurück. Die ausgegebene Zeichenkette ist die numerische Darstellung der Dauer, gefolgt von der Zeiteinheit, ähnlich wie es die C++-Standardbibliothek mit „ std::ostream “ erzeugen würde.
Die Einheit ist nicht lokalisiert.
Diese Funktion wurde in Qt 6.6 eingeführt.
[since 6.7] QDebug &QDebug::operator<<(std::nullopt_t)
Schreibt „nullopt“ in den Stream.
Diese Funktion wurde in Qt 6.7 eingeführt.
QDebug &QDebug::operator<<(unsigned int t)
Schreibt die vorzeichenlose Ganzzahl „ t “ in den Stream und gibt eine Referenz auf den Stream zurück.
QDebug &QDebug::operator<<(unsigned long t)
Schreibt die unsignierte Long-Ganzzahl „ t “ in den Stream und gibt einen Verweis auf den Stream zurück.
QDebug &QDebug::operator<<(unsigned short t)
Schreibt die vorzeichenlose kurze Ganzzahl „ t “ in den Stream und gibt eine Referenz auf den Stream zurück.
QDebug &QDebug::operator=(const QDebug &other)
Weist diesem Stream den Debug-Stream „ other “ zu und gibt eine Referenz auf diesen Stream zurück.
Verwandte Nicht-Mitglieder
template <typename Key, typename T> QDebug operator<<(QDebug debug, const QHash<Key, T> &hash)
Schreibt den Inhalt von hash in debug. Sowohl Key als auch T müssen das Streaming in QDebug unterstützen.
template <typename T> QDebug operator<<(QDebug debug, const QList<T> &list)
Schreibt den Inhalt von list in debug. T muss das Streaming in QDebug unterstützen.
template <typename Key, typename T> QDebug operator<<(QDebug debug, const QMap<Key, T> &map)
Schreibt den Inhalt von map in debug. Sowohl Key als auch T müssen das Streaming in QDebug unterstützen.
template <typename Key, typename T> QDebug operator<<(QDebug debug, const QMultiHash<Key, T> &hash)
Schreibt den Inhalt von hash in debug. Sowohl Key als auch T müssen das Streaming in QDebug unterstützen.
template <typename Key, typename T> QDebug operator<<(QDebug debug, const QMultiMap<Key, T> &map)
Schreibt den Inhalt von map in debug. Sowohl Key als auch T müssen das Streaming in QDebug unterstützen.
template <typename T> QDebug operator<<(QDebug debug, const QSet<T> &set)
Schreibt den Inhalt von set in debug. T muss das Streaming in QDebug unterstützen.
[since 6.3] template <typename T, qsizetype P> QDebug operator<<(QDebug debug, const QVarLengthArray<T, P> &array)
Schreibt den Inhalt von array in debug. T muss das Streamen in QDebug unterstützen.
Diese Funktion wurde in Qt 6.3 eingeführt.
[since 6.9] template <typename T, std::size_t N> QDebug operator<<(QDebug debug, const std::array<T, N> &array)
Schreibt den Inhalt von array in debug. T muss das Streaming in QDebug unterstützen.
Diese Funktion wurde in Qt 6.9 eingeführt.
template <typename T, typename Alloc> QDebug operator<<(QDebug debug, const std::list<T, Alloc> &vec)
Schreibt den Inhalt der Liste „ vec “ in „ debug “. „ T “ muss das Streaming in „ QDebug “ unterstützen.
template < typename Key, typename T, typename Compare, typename Alloc > QDebug operator<<(QDebug debug, const std::map<Key, T, Compare, Alloc> &map)
Schreibt den Inhalt von map in debug. Sowohl Key als auch T müssen das Streaming in QDebug unterstützen.
template < typename Key, typename T, typename Compare, typename Alloc > QDebug operator<<(QDebug debug, const std::multimap<Key, T, Compare, Alloc> &map)
Schreibt den Inhalt von map in debug. Sowohl Key als auch T müssen das Streaming in QDebug unterstützen.
[since 6.9] template <
typename Key,
typename Compare,
typename Alloc
>
QDebug operator<<(QDebug debug, const std::multiset<Key, Compare, Alloc> &multiset)
Schreibt den Inhalt von ` multiset ` in ` debug`. Der Typ ` Key ` muss das Streaming in ` QDebug` unterstützen.
Diese Funktion wurde in Qt 6.9 eingeführt.
template <typename T1, typename T2> QDebug operator<<(QDebug debug, const std::pair<T1, T2> &pair)
Schreibt den Inhalt von pair in debug. Sowohl T1 als auch T2 müssen das Streaming in QDebug unterstützen.
[since 6.9] template <
typename Key,
typename Compare,
typename Alloc
>
QDebug operator<<(QDebug debug, const std::set<Key, Compare, Alloc> &set)
Schreibt den Inhalt von „ set “ in „ debug “. Der Typ „ Key “ muss das Streaming in „ QDebug “ unterstützen.
Diese Funktion wurde in Qt 6.9 eingeführt.
[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)
Schreibt den Inhalt von map in debug. Sowohl Key als auch T müssen das Streaming in QDebug unterstützen.
Diese Funktion wurde in Qt 6.9 eingeführt.
[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)
Schreibt den Inhalt von ` unordered_set ` in ` debug`. Der Typ ` Key ` muss das Streaming in ` QDebug` unterstützen.
Diese Funktion wurde in Qt 6.9 eingeführt.
template <typename T, typename Alloc> QDebug operator<<(QDebug debug, const std::vector<T, Alloc> &vec)
Schreibt den Inhalt des Vektors „ vec “ in „ debug “. „ T “ muss das Streaming in „ QDebug “ unterstützen.
[since 6.7] QDebug operator<<(QDebug d, QAnyStringView s)
Gibt „ s “ in den Debug-Stream „ d “ aus.
Wenn „ d.quotedString() “ gleich „ true “ ist, gibt dies an, in welcher Kodierung die Zeichenkette vorliegt. Wenn Sie lediglich die Zeichenkettendaten wünschen, verwenden Sie „ visit()“ wie folgt:
s.visit([&d) (auto s) { d << s; });Diese Funktion wurde in Qt 6.7 eingeführt.
Siehe auch QAnyStringView::visit().
[since 6.9] template <typename T> requires if_ordering_type<T> QDebug operator<<(QDebug debug, T t)
Gibt den Sortierwert „ t “ von Qt XML oder std in das Objekt „ debug “ aus.
Einschränkungen
Nimmt nur dann an der Überladungsauflösung teil, wenn „ T “ einer der Werte <QT/Std>::<WEAK/partial/strong>_ordering ist.
Diese Funktion wurde in Qt 6.9 eingeführt.
template <typename T> QDebug operator<<(QDebug debug, const QContiguousCache<T> &cache)
Schreibt den Inhalt von cache in debug. T muss das Streaming in QDebug unterstützen.
template <typename T> QDebug operator<<(QDebug debug, const QFlags<T> &flags)
flags schreibt an debug.
Makro-Dokumentation
QDebug qCritical()
Gibt ein „ QDebug “-Objekt zurück, das eine kritische Meldung an den zentralen Meldungshandler protokolliert.
Beispiel:
qCritical() << "Brush:" << myQBrush << "Other value:" << i;Die Verwendung von `qCritical()` ist eine Alternative zu ` qCritical(const char *, ...)`, das dem `printf`-Paradigma folgt.
Beachten Sie, dass „ QDebug “ und die typspezifischen Stream-Operatoren verschiedene Formatierungen hinzufügen, um die Debug-Meldung lesbarer zu machen. Weitere Details finden Sie in der Dokumentation zu „ formatting options “.
Zu Debugging-Zwecken ist es manchmal sinnvoll, das Programm bei kritischen Meldungen abbrechen zu lassen. So können Sie anschließend den Core-Dump untersuchen oder einen Debugger anhängen – siehe auch ` qFatal()`. Um dies zu aktivieren, setzen Sie die Umgebungsvariable ` QT_FATAL_CRITICALS ` auf eine Zahl n. Das Programm wird dann bei der n-ten kritischen Meldung beendet. Das heißt, wenn die Umgebungsvariable auf 1 gesetzt ist, wird das Programm beim ersten Aufruf beendet; enthält sie den Wert 10, wird es beim 10. Aufruf beendet. Jeder nicht-numerische Wert in der Umgebungsvariable entspricht dem Wert 1.
Hinweis: Dieses Makro ist threadsicher.
Siehe auch ` qCritical(const char *, ...)` und ` qCCritical()`.
QDebug qDebug()
Gibt ein ` QDebug `-Objekt zurück, das eine Debug-Meldung an den zentralen Meldungshandler protokolliert.
Beispiel:
qDebug() << "Brush:" << myQBrush << "Other value:" << i;Die Verwendung von `qDebug()` ist eine Alternative zu ` qDebug(const char *, ...)`, das dem `printf`-Paradigma folgt.
Beachten Sie, dass „ QDebug “ und die typspezifischen Stream-Operatoren verschiedene Formatierungen hinzufügen, um die Debug-Meldung lesbarer zu machen. Weitere Details finden Sie in der Dokumentation zu „ formatting options “.
Diese Funktion führt keine Aktion aus, wenn „ QT_NO_DEBUG_OUTPUT “ während der Kompilierung definiert wurde.
Hinweis: Dieses Makro ist threadsicher.
Siehe auch „ qDebug(const char *, ...)“ und „ qCDebug()“.
QDebug qFatal()
Gibt ein ` QDebug `-Objekt zurück, das eine schwerwiegende Fehlermeldung an den zentralen Meldungshandler protokolliert.
Die Verwendung von `qFatal()` ist eine Alternative zu ` qFatal(const char *, ...)`, das dem `printf`-Paradigma folgt.
Beachten Sie, dass ` QDebug ` und die typspezifischen Stream-Operatoren verschiedene Formatierungen hinzufügen, um die Debug-Meldung lesbarer zu machen. Weitere Details finden Sie in der Dokumentation zu „ formatting options “.
Wenn Sie den Standard-Meldungshandler verwenden, wird der zurückgegebene Stream abgebrochen, um einen Core-Dump zu erstellen. Unter Windows meldet diese Funktion bei Debug-Builds einen _CRT_ERROR, sodass Sie einen Debugger an die Anwendung anschließen können.
Hinweis: Dieses Makro ist threadsicher.
Siehe auch ` qFatal(const char *, ...)` und ` qCFatal()`.
QDebug qInfo()
Gibt ein „ QDebug “-Objekt zurück, das eine Informationsmeldung an den zentralen Nachrichtenhandler protokolliert.
Beispiel:
qInfo() << "Brush:" << myQBrush << "Other value:" << i;Die Verwendung von `qInfo()` ist eine Alternative zu ` qInfo(const char *, ...)`, das dem `printf`-Paradigma folgt.
Beachten Sie, dass „ QDebug “ und die typspezifischen Stream-Operatoren verschiedene Formatierungen hinzufügen, um die Debug-Meldung lesbarer zu machen. Weitere Details finden Sie in der Dokumentation zu „ formatting options “.
Diese Funktion führt keine Aktion aus, wenn „ QT_NO_INFO_OUTPUT “ während der Kompilierung definiert wurde.
Hinweis: Dieses Makro ist threadsicher.
Siehe auch qInfo(const char *, ...) und qCInfo().
QDebug qWarning()
Gibt ein „ QDebug “-Objekt zurück, das eine Warnmeldung an den zentralen Meldungshandler protokolliert.
Beispiel:
qWarning() << "Brush:" << myQBrush << "Other value:" << i;Die Verwendung von `qWarning()` ist eine Alternative zu ` qWarning(const char *, ...)`, das dem `printf`-Paradigma folgt.
Beachten Sie, dass „ QDebug “ und die typspezifischen Stream-Operatoren verschiedene Formatierungen hinzufügen, um die Debug-Meldung besser lesbar zu machen. Weitere Details finden Sie in der Dokumentation zu „ formatting options “.
Diese Funktion hat keine Auswirkung, wenn „ QT_NO_WARNING_OUTPUT “ bei der Kompilierung definiert wurde.
Zu Debugging-Zwecken ist es manchmal sinnvoll, das Programm bei Warnmeldungen abbrechen zu lassen. So kannst du den Core-Dump untersuchen oder einen Debugger anhängen – siehe auch ` qFatal()`. Um dies zu aktivieren, setze die Umgebungsvariable ` QT_FATAL_WARNINGS ` auf eine Zahl ` n`. Das Programm wird dann bei der n-ten Warnung beendet. Das heißt, wenn die Umgebungsvariable auf 1 gesetzt ist, wird das Programm beim ersten Aufruf beendet; wenn sie den Wert 10 enthält, wird es beim 10. Aufruf beendet. Jeder nicht-numerische Wert in der Umgebungsvariable entspricht dem Wert 1.
Hinweis: Dieses Makro ist threadsicher.
Siehe auch ` qWarning(const char *, ...)` und ` 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.