QDebugStateSaver Class
Convenience-Klasse für benutzerdefinierte QDebug Operatoren. Mehr...
Kopfzeile: | #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() |
Detaillierte Beschreibung
Speichert die von QDebug verwendeten Einstellungen und stellt sie bei der Zerstörung wieder her. Ruft dann maybeSpace() auf, um Argumente durch ein Leerzeichen zu trennen, wenn autoInsertSpaces() zum Zeitpunkt der Erstellung des QDebugStateSavers 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, so dass die Verwendung von << Qt::hex in einem QDebug Operator keine Auswirkungen auf andere QDebug Operatoren hat.
QDebugStateSaver wird typischerweise in der Implementierung eines Operators<<() zum Debuggen verwendet:
QDebug operator<<(QDebug dbg, const Message &message) { 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; }
Member Function Dokumentation
QDebugStateSaver::QDebugStateSaver(QDebug &dbg)
Erzeugt eine QDebugStateSaver-Instanz, die die aktuell von dbg verwendeten Einstellungen speichert.
Siehe auch QDebug::setAutoInsertSpaces() und QDebug::autoInsertSpaces().
[noexcept]
QDebugStateSaver::~QDebugStateSaver()
Zerstört eine Instanz von QDebugStateSaver, wodurch die bei der Erstellung der Instanz QDebugStateSaver verwendeten Einstellungen wiederhergestellt werden.
Siehe auch QDebug::setAutoInsertSpaces() und QDebug::autoInsertSpaces().
© 2025 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.