QUndoGroup Class
QUndoGroup 클래스는 QUndoStack 객체들의 그룹입니다. 더 보기...
| 헤더: | #include <QUndoGroup> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS Gui) target_link_libraries(mytarget PRIVATE Qt6::Gui) |
| qmake: | QT += gui |
| 상속: | QObject |
공개 함수
| 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 |
공개 슬롯
| void | redo() |
| void | setActiveStack(QUndoStack *stack) |
| void | undo() |
신호
| 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) |
상세 설명
Qt의 실행 취소 프레임워크에 대한 개요는 개요를 참조하십시오.
애플리케이션에는 종종 여러 개의 실행 취소 스택이 있으며, 열려 있는 문서마다 하나씩 존재합니다. 동시에, 애플리케이션에는 일반적으로 하나의 실행 취소 동작과 하나의 다시 실행 동작이 있으며, 이는 활성 문서에서 실행 취소 또는 다시 실행을 트리거합니다.
QUndoGroup은 여러 개의 ` QUndoStack ` 객체로 구성된 그룹이며, 그중 하나는 활성 상태일 수 있습니다. 이 그룹에는 ` undo()` 및 ` redo()` 슬롯이 있으며, 이 슬롯은 활성 스택에 대해 ` QUndoStack::undo()` 및 ` QUndoStack::redo()`를 호출합니다. 또한 ` createUndoAction()` 및 ` createRedoAction()` 함수도 있습니다. 이 함수들이 반환하는 액션은 활성 스택의 ` QUndoStack::createUndoAction()` 및 ` QUndoStack::createRedoAction()`가 반환하는 액션과 동일한 방식으로 작동합니다.
스택은 addStack()을 사용하여 그룹에 추가하고, removeStack()을 사용하여 그룹에서 제거합니다. 스택이 그룹을 부모로 하여 생성될 때 QObject, 해당 스택은 암시적으로 그룹에 추가됩니다.
어떤 스택을 활성 스택으로 지정할지는 프로그래머의 책임이며, 일반적으로 관련 문서 창이 포커스를 받을 때 QUndoStack::setActive()를 호출하여 지정합니다. 활성 스택은 setActiveStack()를 사용하여 설정할 수도 있으며, activeStack()에 의해 반환됩니다.
addStack()를 사용하여 스택을 그룹에 추가할 때, 그룹은 해당 스택에 대한 소유권을 가지지 않습니다. 즉, 스택은 그룹과 별도로 삭제해야 합니다. 스택이 삭제되면 그룹에서 자동으로 제거됩니다. 스택은 하나의 그룹에만 속할 수 있습니다. 다른 그룹에 추가하면 이전 그룹에서 제거됩니다.
QUndoGroup은 QUndoView 와 함께 사용할 때도 유용합니다. QUndoView 가 QUndoView::setGroup()를 사용하여 그룹을 감시하도록 설정된 경우, 활성 스택을 표시하도록 자체적으로 업데이트됩니다.
멤버 함수 문서
[explicit] QUndoGroup::QUndoGroup(QObject *parent = nullptr)
parent 를 부모로 하는 빈 QUndoGroup 객체를 생성합니다.
addStack()도 참조하십시오 .
[virtual noexcept] QUndoGroup::~QUndoGroup()
QUndoGroup 를 파괴합니다.
QUndoStack *QUndoGroup::activeStack() const
이 그룹의 활성 스택을 반환합니다.
활성 스택이 없거나 그룹이 비어 있는 경우, 이 함수는 ` nullptr`를 반환합니다.
setActiveStack() 및 QUndoStack::setActive()도 참조하십시오 .
[signal] void QUndoGroup::activeStackChanged(QUndoStack *stack)
이 신호는 그룹의 활성 스택이 변경될 때마다 발생합니다. 이는 setActiveStack() 또는 QUndoStack::setActive()가 호출되거나, 활성 스택이 그룹에서 제거될 때 발생할 수 있습니다. stack 는 새로운 활성 스택입니다. 활성 스택이 없는 경우, stack 는 0입니다.
setActiveStack() 및 QUndoStack::setActive()도 참조하십시오 .
void QUndoGroup::addStack(QUndoStack *stack)
이 그룹에 stack 를 추가합니다. 이 그룹은 스택의 소유권을 가지지 않습니다. 스택을 그룹에 추가하는 또 다른 방법은 QUndoStack::QUndoStack()에서 해당 그룹을 스택의 부모 QObject 로 지정하는 것입니다. 이 경우, QObject의 일반적인 방식에 따라 그룹이 삭제되면 스택도 함께 삭제됩니다.
removeStack(), stacks() 및 QUndoStack::QUndoStack()도 참조하십시오 .
bool QUndoGroup::canRedo() const
활성 스택의 ` QUndoStack::canRedo()` 함수의 반환값을 반환합니다.
활성 스택이 없거나 그룹이 비어 있는 경우, 이 함수는 ` false`을 반환합니다.
canUndo() 및 setActiveStack()도 참조하십시오 .
[signal] void QUndoGroup::canRedoChanged(bool canRedo)
이 신호는 활성 스택이 ` QUndoStack::canRedoChanged()`를 발생시키거나 활성 스택이 변경될 때마다 발생합니다.
canRedo 는 새로운 상태이며, 활성 스택이 0인 경우에는 false입니다.
QUndoStack::canRedoChanged() 및 setActiveStack()도 참조하십시오 .
bool QUndoGroup::canUndo() const
활성 스택의 ` QUndoStack::canUndo()` 함수의 반환값을 반환합니다.
활성 스택이 없거나 그룹이 비어 있는 경우, 이 함수는 ` false`을 반환합니다.
canRedo() 및 setActiveStack()도 참조하십시오 .
[signal] void QUndoGroup::canUndoChanged(bool canUndo)
이 신호는 활성 스택이 ` QUndoStack::canUndoChanged()`을 발생시키거나 활성 스택이 변경될 때마다 발생합니다.
canUndo 는 새로운 상태이며, 활성 스택이 0인 경우에는 false입니다.
QUndoStack::canUndoChanged() 및 setActiveStack()도 참조하십시오 .
[signal] void QUndoGroup::cleanChanged(bool clean)
이 신호는 활성 스택이 ` QUndoStack::cleanChanged()`를 발생시키거나 활성 스택이 변경될 때마다 발생합니다.
clean 는 새로운 상태이며, 활성 스택이 0인 경우 true입니다.
QUndoStack::cleanChanged() 및 setActiveStack()도 참조하십시오 .
QAction *QUndoGroup::createRedoAction(QObject *parent, const QString &prefix = QString()) const
부모 객체 parent 를 가진 redo QAction 객체를 생성합니다.
이 액션을 트리거하면 활성 스택에서 QUndoStack::redo()이 호출됩니다. 이 액션의 텍스트는 항상 다음 redo() 호출에서 다시 실행될 명령의 텍스트에 prefix 가 접두사로 붙은 형태가 됩니다. 다시 실행할 명령이 없거나, 그룹이 비어 있거나, 활성 스택이 없는 경우 이 액션은 비활성화됩니다.
prefix 가 비어 있는 경우, 접두사 대신 기본 템플릿 "Redo %1"이 사용됩니다. Qt 4.8 이전 버전에서는 기본적으로 "Redo" 접두사가 사용되었습니다.
createUndoAction(), canRedo() 및 QUndoCommand::text()도 참조하십시오 .
QAction *QUndoGroup::createUndoAction(QObject *parent, const QString &prefix = QString()) const
부모 객체 parent 를 가진 undo QAction 객체를 생성합니다.
이 액션을 트리거하면 활성 스택에서 ` QUndoStack::undo()`가 호출됩니다. 이 액션의 텍스트는 항상 다음 undo() 호출에서 취소될 명령의 텍스트에 prefix 가 접두사로 붙은 형태가 됩니다. 취소할 명령이 없거나, 그룹이 비어 있거나, 활성 스택이 없는 경우 이 액션은 비활성화됩니다.
prefix 가 비어 있는 경우, 접두사 대신 기본 템플릿 "Undo %1"이 사용됩니다. Qt 4.8 이전 버전에서는 기본적으로 "Undo" 접두사가 사용되었습니다.
createRedoAction(), canUndo(), QUndoCommand::text()도 참조하십시오 .
[signal] void QUndoGroup::indexChanged(int idx)
이 신호는 활성 스택이 ` QUndoStack::indexChanged()`를 발생시키거나 활성 스택이 변경될 때마다 발생합니다.
idx 는 새로운 현재 인덱스이며, 활성 스택이 0인 경우 0입니다.
QUndoStack::indexChanged() 및 setActiveStack()도 참조하십시오 .
bool QUndoGroup::isClean() const
활성 스택의 ` QUndoStack::isClean()` 함수의 반환값을 반환합니다.
활성 스택이 없거나 그룹이 비어 있는 경우, 이 함수는 ` true`를 반환합니다.
setActiveStack()도 참조하십시오 .
[slot] void QUndoGroup::redo()
활성 스택에서 ` QUndoStack::redo()`를 호출합니다.
활성 스택이 없거나 그룹이 비어 있는 경우, 이 함수는 아무 작업도 수행하지 않습니다.
undo(), canRedo(), setActiveStack()도 참조하십시오 .
QString QUndoGroup::redoText() const
활성 스택의 ` QUndoStack::redoText()`의 값을 반환합니다.
활성 스택이 없거나 그룹이 비어 있는 경우, 이 함수는 빈 문자열을 반환합니다.
undoText() 및 setActiveStack()도 참조하십시오 .
[signal] void QUndoGroup::redoTextChanged(const QString &redoText)
이 신호는 활성 스택이 ` QUndoStack::redoTextChanged()`를 발생시키거나 활성 스택이 변경될 때마다 발생합니다.
redoText 는 새로운 상태이며, 활성 스택이 0인 경우에는 빈 문자열입니다.
QUndoStack::redoTextChanged() 및 setActiveStack()도 참조하십시오 .
void QUndoGroup::removeStack(QUndoStack *stack)
이 그룹에서 stack 을 제거합니다. 해당 스택이 그룹 내의 활성 스택이었던 경우, 활성 스택은 0이 됩니다.
addStack(), stacks() 및 QUndoStack::~QUndoStack()도 참조하십시오 .
[slot] void QUndoGroup::setActiveStack(QUndoStack *stack)
이 그룹의 활성 스택을 stack 로 설정합니다.
스택이 이 그룹의 구성원이 아닌 경우, 이 함수는 아무 작업도 수행하지 않습니다.
stack 에서 QUndoStack::setActive()을 호출하는 것과 동일합니다.
이제 createUndoAction() 및 createRedoAction()이 반환하는 액션은 stack 의 QUndoStack::createUndoAction() 및 QUndoStack::createRedoAction()이 반환하는 액션과 동일한 방식으로 동작합니다.
QUndoStack::setActive() 및 activeStack()도 참조하십시오 .
QList<QUndoStack *> QUndoGroup::stacks() const
이 그룹에 속한 스택 목록을 반환합니다.
addStack() 및 removeStack()도 참조하십시오 .
[slot] void QUndoGroup::undo()
활성 스택에서 ` QUndoStack::undo()`를 호출합니다.
활성 스택이 없거나 그룹이 비어 있는 경우, 이 함수는 아무 작업도 수행하지 않습니다.
redo(), canUndo(), setActiveStack()도 참조하십시오 .
QString QUndoGroup::undoText() const
활성 스택의 ` QUndoStack::undoText()` 함수의 반환 값을 반환합니다.
활성 스택이 없거나 그룹이 비어 있는 경우, 이 함수는 빈 문자열을 반환합니다.
redoText() 및 setActiveStack()도 참조하십시오 .
[signal] void QUndoGroup::undoTextChanged(const QString &undoText)
이 신호는 활성 스택이 ` QUndoStack::undoTextChanged()`를 발생시키거나 활성 스택이 변경될 때마다 발생합니다.
undoText 는 새로운 상태이며, 활성 스택이 0인 경우 빈 문자열입니다.
QUndoStack::undoTextChanged() 및 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.