QDebugStateSaver Class
Classe de commodité pour les opérateurs QDebug personnalisés. Plus d'informations...
| En-tête : | #include <QDebugStateSaver> |
| CMake : | find_package(Qt6 REQUIRED COMPONENTS Core)target_link_libraries(mytarget PRIVATE Qt6::Core) |
| qmake : | QT += core |
Fonctions publiques
| QDebugStateSaver(QDebug &dbg) | |
| ~QDebugStateSaver() |
Description détaillée
Sauvegarde les paramètres utilisés par QDebug, et les restaure lors de la destruction, puis appelle maybeSpace(), pour séparer les arguments avec un espace si autoInsertSpaces() était vrai au moment de la construction du QDebugStateSaver.
L'insertion automatique d'espaces entre les écritures est l'un des paramètres que QDebugStateSaver conserve pour la durée du bloc en cours.
Les paramètres de l'interface interne QTextStream sont également sauvegardés et restaurés, de sorte que l'utilisation de << Qt::hex dans un opérateur QDebug n'affecte pas les autres opérateurs QDebug.
QDebugStateSaver est généralement utilisé dans la mise en œuvre d'un opérateur<<() pour le débogage :
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; }
Documentation des fonctions membres
QDebugStateSaver::QDebugStateSaver(QDebug &dbg)
Crée une instance de QDebugStateSaver, qui enregistre les paramètres actuellement utilisés par dbg.
Voir également QDebug::setAutoInsertSpaces() et QDebug::autoInsertSpaces().
[noexcept] QDebugStateSaver::~QDebugStateSaver()
Détruit une instance QDebugStateSaver, ce qui rétablit les paramètres utilisés lors de la création de l'instance QDebugStateSaver.
Voir également QDebug::setAutoInsertSpaces() et 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.