QDebugStateSaver Class
Classe d'aide pour les opérateurs d'QDebug s personnalisés. En savoir plus...
| 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
Enregistre les paramètres utilisés par QDebug et les restaure lors de la destruction, puis appelle maybeSpace() pour séparer les arguments par un espace si autoInsertSpaces() était vrai au moment de la construction de QDebugStateSaver.
L’insertion automatique d’espaces entre les écritures est l’un des paramètres que QDebugStateSaver stocke pendant la durée du bloc actuel.
Les paramètres de l’ QTextStream interne sont également enregistré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 l’implémentation d’un opérateur <<() à des fins de 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 de « 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.