QDebugStateSaver Class
Hilfsklasse für benutzerdefinierte „ QDebug “-Operatoren. Mehr...
| Überschrift: | #include <QDebugStateSaver> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS Core) target_link_libraries(mytarget PRIVATE Qt6::Core) |
| qmake: | QT += core |
Öffentliche Funktionen
| QDebugStateSaver(QDebug &dbg) | |
| ~QDebugStateSaver() |
Ausführliche Beschreibung
Speichert die von ` QDebug` verwendeten Einstellungen, stellt sie bei der Zerstörung wieder her und ruft anschließend ` maybeSpace()` auf, um Argumente durch ein Leerzeichen zu trennen, sofern ` autoInsertSpaces()` zum Zeitpunkt der Erstellung des `QDebugStateSaver` wahr war.
Das automatische Einfügen von Leerzeichen zwischen Schreibvorgängen ist eine der Einstellungen, die QDebugStateSaver für die Dauer des aktuellen Blocks speichert.
Die Einstellungen des internen ` QTextStream ` werden ebenfalls gespeichert und wiederhergestellt, sodass die Verwendung von `<< Qt::hex ` in einem ` QDebug `-Operator keine Auswirkungen auf andere ` QDebug `-Operatoren hat.
QDebugStateSaver wird typischerweise bei der Implementierung eines Operators <<() zum Debuggen verwendet:
QDebug operator<<(QDebug dbg, const Message &message)
{
QDebugStateSaver saver(dbg);
const QList<QStringView> pieces = message.body().split(u"\r\n", Qt::SkipEmptyParts);
if (pieces.isEmpty())
dbg.nospace() << "Message()";
else if (pieces.size() == 1)
dbg.nospace() << "Message(" << pieces.first() << ")";
else
dbg.nospace() << "Message(" << pieces.first() << " ...)";
return dbg;
}Dokumentation zu Mitgliedsfunktionen
QDebugStateSaver::QDebugStateSaver(QDebug &dbg)
Erstellt eine Instanz von `QDebugStateSaver`, die die aktuell von ` dbg` verwendeten Einstellungen speichert.
Siehe auch QDebug::setAutoInsertSpaces() und QDebug::autoInsertSpaces().
[noexcept] QDebugStateSaver::~QDebugStateSaver()
Löscht eine „ QDebugStateSaver “-Instanz, wodurch die Einstellungen wiederhergestellt werden, die bei der Erstellung der „ QDebugStateSaver “-Instanz verwendet wurden.
Siehe auch QDebug::setAutoInsertSpaces() und QDebug::autoInsertSpaces().
© 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.