QUndoGroup Class
La clase QUndoGroup es un grupo de objetos QUndoStack. Más...
| Cabecera: | #include <QUndoGroup> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS Gui)target_link_libraries(mytarget PRIVATE Qt6::Gui) |
| qmake: | QT += gui |
| Hereda: | QObject |
Funciones Públicas
| 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 |
Ranuras Públicas
| void | redo() |
| void | setActiveStack(QUndoStack *stack) |
| void | undo() |
Señales
| 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) |
Descripción Detallada
Para una visión general del framework de deshacer de Qt, vea la visión general.
Una aplicación a menudo tiene múltiples pilas de deshacer, una para cada documento abierto. Al mismo tiempo, una aplicación suele tener una acción de deshacer y una acción de rehacer, que activan deshacer o rehacer en el documento activo.
QUndoGroup es un grupo de objetos QUndoStack, uno de los cuales puede estar activo. Tiene una ranura undo() y redo(), que llama a QUndoStack::undo() y QUndoStack::redo() para la pila activa. También tiene las funciones createUndoAction() y createRedoAction(). Las acciones devueltas por estas funciones se comportan de la misma manera que las devueltas por QUndoStack::createUndoAction() y QUndoStack::createRedoAction() de la pila activa.
Las pilas se añaden a un grupo con addStack() y se eliminan con removeStack(). Una pila se añade implícitamente a un grupo cuando se crea con el grupo como padre QObject.
Es responsabilidad del programador especificar qué pila está activa llamando a QUndoStack::setActive(), normalmente cuando la ventana del documento asociado recibe el foco. La pila activa también puede establecerse con setActiveStack(), y es devuelta por activeStack().
Cuando se añade una pila a un grupo utilizando addStack(), el grupo no toma posesión de la pila. Esto significa que la pila tiene que ser eliminada por separado del grupo. Cuando se borra una pila, se elimina automáticamente de un grupo. Una pila sólo puede pertenecer a un grupo. Si se añade a otro grupo, se eliminará del grupo anterior.
Un QUndoGroup también es útil junto con QUndoView. Si un QUndoView se configura para vigilar un grupo utilizando QUndoView::setGroup(), se actualizará para mostrar la pila activa.
Documentación de las funciones miembro
[explicit] QUndoGroup::QUndoGroup(QObject *parent = nullptr)
Crea un objeto QUndoGroup vacío con el padre parent.
Véase también addStack().
[virtual noexcept] QUndoGroup::~QUndoGroup()
Destruye el QUndoGroup.
QUndoStack *QUndoGroup::activeStack() const
Devuelve la pila activa de este grupo.
Si ninguna de las pilas está activa, o si el grupo está vacío, esta función devuelve nullptr.
Véase también setActiveStack() y QUndoStack::setActive().
[signal] void QUndoGroup::activeStackChanged(QUndoStack *stack)
Esta señal se emite cada vez que cambia la pila activa del grupo. Esto puede ocurrir cuando se llama a setActiveStack() o QUndoStack::setActive(), o cuando se elimina la pila activa del grupo. stack es la nueva pila activa. Si no hay ninguna pila activa, stack es 0.
Véase también setActiveStack() y QUndoStack::setActive().
void QUndoGroup::addStack(QUndoStack *stack)
Añade stack a este grupo. El grupo no toma posesión de la pila. Otra forma de añadir una pila a un grupo es especificando el grupo como padre de la pila QObject en QUndoStack::QUndoStack(). En este caso, la pila se elimina cuando se elimina el grupo, de la manera habitual de QObjects.
Ver también removeStack(), stacks(), y QUndoStack::QUndoStack().
bool QUndoGroup::canRedo() const
Devuelve el valor de QUndoStack::canRedo() de la pila activa.
Si ninguna de las pilas está activa, o si el grupo está vacío, esta función devuelve false.
Véase también canUndo() y setActiveStack().
[signal] void QUndoGroup::canRedoChanged(bool canRedo)
Esta señal se emite siempre que la pila activa emite QUndoStack::canRedoChanged() o la pila activa cambia.
canRedo es el nuevo estado, o false si la pila activa es 0.
Véase también QUndoStack::canRedoChanged() y setActiveStack().
bool QUndoGroup::canUndo() const
Devuelve el valor de QUndoStack::canUndo() de la pila activa.
Si ninguna de las pilas está activa, o si el grupo está vacío, esta función devuelve false.
Véase también canRedo() y setActiveStack().
[signal] void QUndoGroup::canUndoChanged(bool canUndo)
Esta señal se emite siempre que la pila activa emite QUndoStack::canUndoChanged() o la pila activa cambia.
canUndo es el nuevo estado, o false si la pila activa es 0.
Véase también QUndoStack::canUndoChanged() y setActiveStack().
[signal] void QUndoGroup::cleanChanged(bool clean)
Esta señal se emite siempre que la pila activa emite QUndoStack::cleanChanged() o la pila activa cambia.
clean es el nuevo estado, o true si la pila activa es 0.
Véase también QUndoStack::cleanChanged() y setActiveStack().
QAction *QUndoGroup::createRedoAction(QObject *parent, const QString &prefix = QString()) const
Crea un objeto redo QAction con el padre parent.
La activación de esta acción provocará una llamada a QUndoStack::redo() en la pila activa. El texto de esta acción será siempre el texto del comando que se rehará en la siguiente llamada a redo(), con el prefijo prefix. Si no hay ningún comando disponible para rehacer, si el grupo está vacío o si ninguna de las pilas está activa, esta acción se desactivará.
Si prefix está vacío, se utilizará la plantilla por defecto "Rehacer %1" en lugar del prefijo. Antes de Qt 4.8, se utilizaba por defecto el prefijo "Redo".
Véase también createUndoAction(), canRedo(), y QUndoCommand::text().
QAction *QUndoGroup::createUndoAction(QObject *parent, const QString &prefix = QString()) const
Crea un objeto deshacer QAction con el padre parent.
La activación de esta acción provocará una llamada a QUndoStack::undo() en la pila activa. El texto de esta acción será siempre el texto del comando que se deshará en la siguiente llamada a undo(), con el prefijo prefix. Si no hay ningún comando disponible para deshacer, si el grupo está vacío o si ninguna de las pilas está activa, esta acción estará desactivada.
Si prefix está vacío, se utilizará la plantilla por defecto "Deshacer %1" en lugar del prefijo. Antes de Qt 4.8, se utilizaba por defecto el prefijo "Deshacer".
Véase también createRedoAction(), canUndo(), y QUndoCommand::text().
[signal] void QUndoGroup::indexChanged(int idx)
Esta señal se emite siempre que la pila activa emite QUndoStack::indexChanged() o la pila activa cambia.
idx es el nuevo índice actual, o 0 si la pila activa es 0.
Véase también QUndoStack::indexChanged() y setActiveStack().
bool QUndoGroup::isClean() const
Devuelve el valor de QUndoStack::isClean() de la pila activa.
Si ninguna de las pilas está activa, o si el grupo está vacío, esta función devuelve true.
Véase también setActiveStack().
[slot] void QUndoGroup::redo()
Llama a QUndoStack::redo() en la pila activa.
Si ninguna de las pilas está activa, o si el grupo está vacío, esta función no hace nada.
Véase también undo(), canRedo() y setActiveStack().
QString QUndoGroup::redoText() const
Devuelve el valor de QUndoStack::redoText() de la pila activa.
Si ninguna de las pilas está activa, o si el grupo está vacío, esta función devuelve una cadena vacía.
Véase también undoText() y setActiveStack().
[signal] void QUndoGroup::redoTextChanged(const QString &redoText)
Esta señal se emite siempre que la pila activa emite QUndoStack::redoTextChanged() o la pila activa cambia.
redoText es el nuevo estado, o una cadena vacía si la pila activa es 0.
Véase también QUndoStack::redoTextChanged() y setActiveStack().
void QUndoGroup::removeStack(QUndoStack *stack)
Elimina stack de este grupo. Si la pila era la pila activa en el grupo, la pila activa pasa a ser 0.
Véase también addStack(), stacks() y QUndoStack::~QUndoStack().
[slot] void QUndoGroup::setActiveStack(QUndoStack *stack)
Establece la pila activa de este grupo en stack.
Si la pila no es miembro de este grupo, esta función no hace nada.
Sinónimo de llamar a QUndoStack::setActive() en stack.
Las acciones devueltas por createUndoAction() y createRedoAction() se comportarán ahora de la misma manera que las devueltas por stack's QUndoStack::createUndoAction() y QUndoStack::createRedoAction().
Véase también QUndoStack::setActive() y activeStack().
QList<QUndoStack *> QUndoGroup::stacks() const
Devuelve una lista de las pilas de este grupo.
Véase también addStack() y removeStack().
[slot] void QUndoGroup::undo()
Llama a QUndoStack::undo() en la pila activa.
Si ninguna de las pilas está activa, o si el grupo está vacío, esta función no hace nada.
Véase también redo(), canUndo() y setActiveStack().
QString QUndoGroup::undoText() const
Devuelve el valor de QUndoStack::undoText() de la pila activa.
Si ninguna de las pilas está activa, o si el grupo está vacío, esta función devuelve una cadena vacía.
Véase también redoText() y setActiveStack().
[signal] void QUndoGroup::undoTextChanged(const QString &undoText)
Esta señal se emite siempre que la pila activa emite QUndoStack::undoTextChanged() o la pila activa cambia.
undoText es el nuevo estado, o una cadena vacía si la pila activa es 0.
Véase también QUndoStack::undoTextChanged() y 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.