Sur cette page

QUndoGroup Class

La classe QUndoGroup est un groupe d'objets QUndoStack. Plus d'informations...

En-tête : #include <QUndoGroup>
CMake : find_package(Qt6 REQUIRED COMPONENTS Gui)
target_link_libraries(mytarget PRIVATE Qt6::Gui)
qmake : QT += gui
Héritages : 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

Emplacements 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 vue d'ensemble du cadre d'annulation de Qt, voir la vue d'ensemble.

Une application possède souvent plusieurs piles d'annulation, une pour chaque document ouvert. En même temps, une application a généralement une action d'annulation et une action de rétablissement, qui déclenche l'annulation ou le rétablissement dans le document actif.

QUndoGroup est un groupe d'objets QUndoStack, dont l'un peut être actif. Il possède un slot undo() et redo(), qui appelle QUndoStack::undo() et QUndoStack::redo() pour la pile active. Il possède également les 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 avec addStack() et supprimées avec removeStack(). Une pile est implicitement ajoutée à un groupe lorsqu'elle est créée avec le groupe comme parent QObject.

Il incombe au programmeur de spécifier la pile active en appelant QUndoStack::setActive(), généralement lorsque la fenêtre de document associée 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 ne prend pas possession de la pile. 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'ajout d'une pile à un autre groupe entraînera sa suppression du groupe précédent.

Un QUndoGroup est également utile en conjonction avec QUndoView. Si un QUndoView est configuré pour surveiller un groupe à l'aide de QUndoView::setGroup(), il se mettra à jour pour afficher la pile active.

Documentation des fonctions membres

[explicit] QUndoGroup::QUndoGroup(QObject *parent = nullptr)

Crée un objet QUndoGroup vide avec le parent parent.

Voir aussi addStack().

[virtual noexcept] QUndoGroup::~QUndoGroup()

Détruit le site 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 lorsque la pile active du groupe change. Cela peut se produire lorsque setActiveStack() ou QUndoStack::setActive() est appelé, ou lorsque la pile active est retirée du groupe. stack est 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 n'est pas propriétaire de la pile. Une autre façon d'ajouter une pile à un groupe est de spécifier le groupe comme parent de la pile QObject dans QUndoStack::QUndoStack(). Dans ce cas, la pile est supprimée lorsque le groupe est supprimé, de la manière habituelle pour les QObjects.

Voir également removeStack(), stacks() et QUndoStack::QUndoStack().

bool QUndoGroup::canRedo() const

Renvoie la valeur de la pile active QUndoStack::canRedo().

Si aucune des piles 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 à 0.

Voir aussi QUndoStack::canRedoChanged() et setActiveStack().

bool QUndoGroup::canUndo() const

Renvoie la valeur de la pile active QUndoStack::canUndo().

Si aucune des piles n'est active ou si le groupe est vide, cette fonction renvoie false.

Voir également canRedo() et setActiveStack().

[signal] void QUndoGroup::canUndoChanged(bool canUndo)

Ce signal est émis chaque fois que la pile active émet QUndoStack::canUndoChanged() ou que la pile active change.

canUndo est le nouvel état, ou false si la pile active est à 0.

Voir aussi 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 est le nouvel état, ou vrai si la pile active est à 0.

Voir aussi QUndoStack::cleanChanged() et setActiveStack().

QAction *QUndoGroup::createRedoAction(QObject *parent, const QString &prefix = QString()) const

Crée un objet redo QAction avec le parent parent.

Le déclenchement de cette action entraîne un appel à QUndoStack::redo() sur la pile active. Le texte de cette action sera toujours le texte de la commande qui sera refaite lors du prochain appel à redo(), préfixé par prefix. Si aucune commande n'est disponible pour être refaite, si le groupe est vide ou si aucune des piles 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 aussi createUndoAction(), canRedo(), et QUndoCommand::text().

QAction *QUndoGroup::createUndoAction(QObject *parent, const QString &prefix = QString()) const

Crée un objet d'annulation QAction avec le parent parent.

Le déclenchement de cette action entraîne un appel à 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. Si aucune commande n'est disponible pour l'annulation, si le groupe est vide ou si aucune des piles 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 aussi createRedoAction(), canUndo() et QUndoCommand::text().

[signal] void QUndoGroup::indexChanged(int idx)

Ce signal est émis lorsque la pile active émet QUndoStack::indexChanged() ou lorsque la pile active change.

idx est le nouvel indice courant, ou 0 si la pile active est à 0.

Voir aussi QUndoStack::indexChanged() et setActiveStack().

bool QUndoGroup::isClean() const

Renvoie la valeur de la pile active QUndoStack::isClean().

Si aucune des piles n'est active ou si le groupe est vide, cette fonction renvoie true.

Voir également setActiveStack().

[slot] void QUndoGroup::redo()

Appelle 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 pile active QUndoStack::redoText().

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 aussi 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 à stack.

Si la pile n'est pas membre de ce groupe, cette fonction ne fait rien.

Synonyme d'appel à QUndoStack::setActive() sur stack.

QUndoStack::createUndoActionLes actions renvoyées par createUndoAction() et createRedoAction() se comporteront désormais de la même manière que celles renvoyées par les fonctions stack() et QUndoStack::createRedoAction().

Voir également QUndoStack::setActive() et activeStack().

QList<QUndoStack *> QUndoGroup::stacks() const

Renvoie une liste des piles de ce groupe.

Voir aussi addStack() et removeStack().

[slot] void QUndoGroup::undo()

Appelle 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 pile active QUndoStack::undoText().

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 QUndoStack::undoTextChanged() ou que la pile active change.

undoText est le nouvel état, ou une chaîne vide si la pile active est à 0.

Voir aussi 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.