QPainterStateGuard Class
QPainterStateGuard est une classe de commodité RAII permettant d'équilibrer les appels QPainter::save() et QPainter::restore(). Plus d'informations...
| En-tête : | #include <QPainterStateGuard> |
| CMake : | find_package(Qt6 REQUIRED COMPONENTS Gui)target_link_libraries(mytarget PRIVATE Qt6::Gui) |
| qmake : | QT += gui |
| Depuis : | Qt 6.9 |
- Liste de tous les membres, y compris les membres hérités
- QPainterStateGuard fait partie des classes de peinture.
Note : Toutes les fonctions de cette classe sont réentrantes.
Fonctions publiques
| QPainterStateGuard(QPainter *painter, QPainterStateGuard::InitialState state = InitialState::Save) | |
| QPainterStateGuard(QPainterStateGuard &&other) | |
| ~QPainterStateGuard() | |
| void | restore() |
| void | save() |
| void | swap(QPainterStateGuard &other) |
| QPainterStateGuard & | operator=(QPainterStateGuard &&other) |
Description détaillée
QPainterStateGuard doit être utilisé partout en remplacement de QPainter::save() pour s'assurer que la fonction QPainter::restore() correspondante est appelée à la fin de la routine de peinture afin d'éviter les appels déséquilibrés entre ces deux fonctions.
Exemple avec QPainter::save()/QPainter::restore() :
void MyWidget::paintEvent(QPaintEvent *) { QPainter painter(this); painter.setPen(Qt::red); if (drawText) { painter.save(); painter.setPen(Qt::blue); painter.setFont(QFont("Arial", 30)); painter.drawText(rect(), Qt::AlignCenter, "Qt"); painter.restore(); // don't forget to restore previous painter state } painter.drawLine(line); }
Exemple avec QPainterStateGuard :
void MyGuardWidget::paintEvent(QPaintEvent *) { QPainter painter(this); painter.setPen(Qt::red); if (drawText) { QPainterStateGuard guard(&painter); painter.setPen(Qt::blue); painter.setFont(QFont("Arial", 30)); painter.drawText(rect(), Qt::AlignCenter, "Qt"); } painter.drawLine(line); }
Voir également QPainter.
Documentation des fonctions membres
[explicit] QPainterStateGuard::QPainterStateGuard(QPainter *painter, QPainterStateGuard::InitialState state = InitialState::Save)
Construit un QPainterStateGuard et appelle save() sur painter si state est InitialState::Save (ce qui est le cas par défaut). Lorsque QPainterStateGuard est détruit, restore() est appelé autant de fois que save() a été appelé pour restaurer l'état de QPainter.
[noexcept] QPainterStateGuard::QPainterStateGuard(QPainterStateGuard &&other)
Move-construit une garde d'état de peintre à partir de other.
[noexcept] QPainterStateGuard::~QPainterStateGuard()
Détruit l'instance QPainterStateGuard et appelle restore() autant de fois que save() a été appelé pour restaurer l'état de QPainter.
void QPainterStateGuard::restore()
Appelle QPainter::restore() si le compteur interne de sauvegarde/restauration est supérieur à zéro.
Note : Cette fonction est activée dans les versions de débogage si le compteur a déjà atteint zéro.
void QPainterStateGuard::save()
Appelle QPainter::save() et augmente le compteur interne de sauvegarde/restauration d'une unité.
[noexcept] void QPainterStateGuard::swap(QPainterStateGuard &other)
Remplace le site other par ce peintre gardien d'état. Cette opération est très rapide et n'échoue jamais.
[noexcept] QPainterStateGuard &QPainterStateGuard::operator=(QPainterStateGuard &&other)
Move-assigne other à cette garde d'état de peintre.
© 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.