QUndoGroup Class
La classe `QUndoGroup` regroupe des objets ` QUndoStack `. En savoir plus...
| En-tête : | #include <QUndoGroup> |
| CMake : | find_package(Qt6 REQUIRED COMPONENTS Gui) target_link_libraries(mytarget PRIVATE Qt6::Gui) |
| qmake : | QT += gui |
| Hérite de : | QObject |
Fonctions publiques
| QUndoGroup(QObject *parent = nullptr) | |
| virtual | ~QUndoGroup() |
| QUndoStack * | activeStack() const |
| void | addStack(QUndoStack *stack) |
| bool | canRedo() const |
| bool | canUndo() const |
| QAction * | createRedoAction(QObject *parent, const QString &prefix = QString()) const |
| QAction * | createUndoAction(QObject *parent, const QString &prefix = QString()) const |
| bool | isClean() const |
| QString | redoText() const |
| void | removeStack(QUndoStack *stack) |
| QList<QUndoStack *> | stacks() const |
| QString | undoText() const |
Slots publics
| void | redo() |
| void | setActiveStack(QUndoStack *stack) |
| void | undo() |
Signaux
| void | activeStackChanged(QUndoStack *stack) |
| void | canRedoChanged(bool canRedo) |
| void | canUndoChanged(bool canUndo) |
| void | cleanChanged(bool clean) |
| void | indexChanged(int idx) |
| void | redoTextChanged(const QString &redoText) |
| void | undoTextChanged(const QString &undoText) |
Description détaillée
Pour une présentation générale du framework d'annulation de Qt, consultez la présentation.
Une application dispose souvent de plusieurs piles d'annulation, une pour chaque document ouvert. Parallèlement, une application comporte généralement une action d'annulation et une action de rétablissement, qui déclenchent respectivement l'annulation ou le rétablissement dans le document actif.
QUndoGroup est un groupe d’objets ` QUndoStack `, dont l’un peut être actif. Il dispose des slots ` undo()` et ` redo()`, qui appellent respectivement ` QUndoStack::undo()` et ` QUndoStack::redo()` pour la pile active. Il dispose également des fonctions ` createUndoAction()` et ` createRedoAction()`. Les actions renvoyées par ces fonctions se comportent de la même manière que celles renvoyées par ` QUndoStack::createUndoAction()` et ` QUndoStack::createRedoAction()` de la pile active.
Les piles sont ajoutées à un groupe à l’aide de ` addStack()` et supprimées à l’aide de ` removeStack()`. Une pile est implicitement ajoutée à un groupe lorsqu’elle est créée avec ce groupe comme parent : ` QObject`.
Il incombe au programmeur de spécifier quelle pile est active en appelant ` QUndoStack::setActive()`, généralement lorsque la fenêtre du document associé reçoit le focus. La pile active peut également être définie à l’aide de ` setActiveStack()` et est renvoyée par ` activeStack()`.
Lorsqu'une pile est ajoutée à un groupe à l'aide de addStack(), le groupe n'en devient pas propriétaire. Cela signifie que la pile doit être supprimée séparément du groupe. Lorsqu'une pile est supprimée, elle est automatiquement retirée du groupe. Une pile ne peut appartenir qu'à un seul groupe. L'ajouter à un autre groupe entraînera son retrait du groupe précédent.
Un QUndoGroup s’avère également utile en association avec ` QUndoView`. Si une ` QUndoView ` est configurée pour surveiller un groupe à l’aide de ` QUndoView::setGroup()`, elle se mettra à jour automatiquement pour afficher la pile active.
Documentation des fonctions membres
[explicit] QUndoGroup::QUndoGroup(QObject *parent = nullptr)
Crée un objet `QUndoGroup` vide dont le parent est ` parent`.
Voir aussi addStack().
[virtual noexcept] QUndoGroup::~QUndoGroup()
Supprime l'QUndoGroup.
QUndoStack *QUndoGroup::activeStack() const
Renvoie la pile active de ce groupe.
Si aucune pile n'est active ou si le groupe est vide, cette fonction renvoie ` nullptr`.
Voir également setActiveStack() et QUndoStack::setActive().
[signal] void QUndoGroup::activeStackChanged(QUndoStack *stack)
Ce signal est émis chaque fois que la pile active du groupe change. Cela peut se produire lors de l'appel de setActiveStack() ou QUndoStack::setActive(), ou lorsque la pile active est retirée du groupe. stack correspond à la nouvelle pile active. Si aucune pile n'est active, stack vaut 0.
Voir également setActiveStack() et QUndoStack::setActive().
void QUndoGroup::addStack(QUndoStack *stack)
Ajoute stack à ce groupe. Le groupe ne devient pas propriétaire de la pile. Une autre façon d’ajouter une pile à un groupe consiste à spécifier le groupe comme parent de la pile QObject dans la méthode QUndoStack::QUndoStack(). Dans ce cas, la pile est supprimée lorsque le groupe est supprimé, conformément au comportement habituel des objets QObject.
Voir également removeStack(), stacks() et QUndoStack::QUndoStack().
bool QUndoGroup::canRedo() const
Renvoie la valeur de la fonction ` QUndoStack::canRedo()` de la pile active.
Si aucune pile n'est active ou si le groupe est vide, cette fonction renvoie false.
Voir également canUndo() et setActiveStack().
[signal] void QUndoGroup::canRedoChanged(bool canRedo)
Ce signal est émis chaque fois que la pile active émet QUndoStack::canRedoChanged() ou que la pile active change.
canRedo est le nouvel état, ou « false » si la pile active est égale à 0.
Voir également QUndoStack::canRedoChanged() et setActiveStack().
bool QUndoGroup::canUndo() const
Renvoie la valeur de la fonction ` QUndoStack::canUndo()` de la pile active.
Si aucune pile n'est active ou si le groupe est vide, cette fonction renvoie false.
Voir aussi canRedo() et setActiveStack().
[signal] void QUndoGroup::canUndoChanged(bool canUndo)
Ce signal est émis chaque fois que la pile active émet un signal « QUndoStack::canUndoChanged() » ou que la pile active change.
canUndo est le nouvel état, ou faux si la pile active est à 0.
Voir également QUndoStack::canUndoChanged() et setActiveStack().
[signal] void QUndoGroup::cleanChanged(bool clean)
Ce signal est émis chaque fois que la pile active émet ` QUndoStack::cleanChanged()` ou que la pile active change.
clean correspond au nouvel état, ou à « true » si la pile active est à 0.
Voir également QUndoStack::cleanChanged() et setActiveStack().
QAction *QUndoGroup::createRedoAction(QObject *parent, const QString &prefix = QString()) const
Crée un objet « redo » de type « QAction » dont le parent est « parent ».
Le déclenchement de cette action entraînera l’appel de la fonction ` QUndoStack::redo()` sur la pile active. Le texte de cette action correspondra toujours au texte de la commande qui sera réitérée lors du prochain appel à redo(), précédé du préfixe prefix. S'il n'y a aucune commande disponible à réitérer, si le groupe est vide ou si aucune pile n'est active, cette action sera désactivée.
Si prefix est vide, le modèle par défaut « Redo %1 » est utilisé à la place du préfixe. Avant Qt 4.8, le préfixe « Redo » était utilisé par défaut.
Voir également createUndoAction(), canRedo() et QUndoCommand::text().
QAction *QUndoGroup::createUndoAction(QObject *parent, const QString &prefix = QString()) const
Crée un objet d'QAction d'annulation dont le parent est parent.
Le déclenchement de cette action entraînera l'appel de la méthode ` QUndoStack::undo()` sur la pile active. Le texte de cette action sera toujours le texte de la commande qui sera annulée lors du prochain appel à undo(), préfixé par prefix. S’il n’y a aucune commande disponible à annuler, si le groupe est vide ou si aucune pile n’est active, cette action sera désactivée.
Si prefix est vide, le modèle par défaut « Undo %1 » est utilisé à la place du préfixe. Avant Qt 4.8, le préfixe « Undo » était utilisé par défaut.
Voir également createRedoAction(), canUndo() et QUndoCommand::text().
[signal] void QUndoGroup::indexChanged(int idx)
Ce signal est émis chaque fois que la pile active émet un signal « QUndoStack::indexChanged() » ou que la pile active change.
idx est le nouvel index courant, ou 0 si la pile active est à 0.
Voir également QUndoStack::indexChanged() et setActiveStack().
bool QUndoGroup::isClean() const
Renvoie la valeur de la fonction ` QUndoStack::isClean()` de la pile active.
Si aucune pile n'est active ou si le groupe est vide, cette fonction renvoie ` true`.
Voir aussi setActiveStack().
[slot] void QUndoGroup::redo()
Appelle la fonction QUndoStack::redo() sur la pile active.
Si aucune pile n'est active, ou si le groupe est vide, cette fonction ne fait rien.
Voir également undo(), canRedo() et setActiveStack().
QString QUndoGroup::redoText() const
Renvoie la valeur de la fonction ` QUndoStack::redoText()` de la pile active.
Si aucune pile n'est active ou si le groupe est vide, cette fonction renvoie une chaîne vide.
Voir également undoText() et setActiveStack().
[signal] void QUndoGroup::redoTextChanged(const QString &redoText)
Ce signal est émis chaque fois que la pile active émet QUndoStack::redoTextChanged() ou que la pile active change.
redoText est le nouvel état, ou une chaîne vide si la pile active est à 0.
Voir également QUndoStack::redoTextChanged() et setActiveStack().
void QUndoGroup::removeStack(QUndoStack *stack)
Supprime stack de ce groupe. Si la pile était la pile active du groupe, la pile active devient 0.
Voir également addStack(), stacks() et QUndoStack::~QUndoStack().
[slot] void QUndoGroup::setActiveStack(QUndoStack *stack)
Définit la pile active de ce groupe sur « stack ».
Si la pile n'appartient pas à ce groupe, cette fonction ne fait rien.
Cela revient à appeler la fonction ` QUndoStack::setActive()` sur ` stack`.
Les actions renvoyées par createUndoAction() et createRedoAction() se comportent désormais de la même manière que celles renvoyées par QUndoStack::createUndoAction() et QUndoStack::createRedoAction() de stack.
Voir également QUndoStack::setActive() et activeStack().
QList<QUndoStack *> QUndoGroup::stacks() const
Renvoie une liste des piles de ce groupe.
Voir également addStack() et removeStack().
[slot] void QUndoGroup::undo()
Appelle la fonction QUndoStack::undo() sur la pile active.
Si aucune pile n'est active ou si le groupe est vide, cette fonction ne fait rien.
Voir également redo(), canUndo() et setActiveStack().
QString QUndoGroup::undoText() const
Renvoie la valeur de la fonction ` QUndoStack::undoText()` de la pile active.
Si aucune pile n'est active ou si le groupe est vide, cette fonction renvoie une chaîne vide.
Voir également ` redoText()` et ` setActiveStack()`.
[signal] void QUndoGroup::undoTextChanged(const QString &undoText)
Ce signal est émis chaque fois que la pile active émet un signal « QUndoStack::undoTextChanged() » ou que la pile active change.
undoText est le nouvel état, ou une chaîne vide si la pile active vaut 0.
Voir également QUndoStack::undoTextChanged() et setActiveStack().
© 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.