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 の元に戻すフレームワークの概要については、概要を参照してください。
アプリケーションには、開いているドキュメントごとに 1 つずつ、複数のアンドゥスタックがあることがよくあります。同時に、アプリケーションには通常、アクティブなドキュメントでアンドゥまたはリドゥをトリガーするアンドゥアクションとリドゥアクションが 1 つずつあります。
QUndoGroupは、QUndoStack オブジェクトのグループであり、そのうち1つがアクティブになることがあります。このグループには、undo()およびredo()スロットがあり、これらはアクティブなスタックに対してQUndoStack::undo()およびQUndoStack::redo()を呼び出します。また、createUndoAction()およびcreateRedoAction()関数も備えています。これらの関数によって返されるアクションは、アクティブなスタックのQUndoStack::createUndoAction()およびQUndoStack::createRedoAction()によって返されるアクションと同様に動作します。
スタックは、addStack() によってグループに追加され、removeStack() によってグループから削除されます。スタックが、その親としてグループを指定して作成された場合QObject 、そのスタックは暗黙的にグループに追加されます。
どのスタックをアクティブにするかを指定するのはプログラマーの責任であり、通常は関連するドキュメントウィンドウがフォーカスを得た際に、QUndoStack::setActive() を呼び出して指定します。アクティブなスタックはsetActiveStack() でも設定でき、activeStack() によって返されます。
addStack() を使用してスタックをグループに追加した場合、グループはそのスタックの所有権を取得しません。つまり、スタックはグループとは別に削除する必要があります。スタックが削除されると、グループからも自動的に削除されます。スタックは 1 つのグループにのみ所属できます。別のグループに追加すると、以前のグループから削除されます。
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 を持つredoQAction オブジェクトを作成します。
このアクションをトリガーすると、アクティブなスタック上で `QUndoStack::redo()` が呼び出されます。 このアクションのテキストは、常に、次回のredo() の呼び出しでやり直されるコマンドのテキストに、prefix が接頭辞として付加されたものになります。やり直し可能なコマンドがない場合、グループが空の場合、またはアクティブなスタックがない場合、このアクションは無効になります。
prefix が空の場合、プレフィックスの代わりにデフォルトのテンプレート「Redo %1」が使用されます。Qt XML 4.8以前では、デフォルトで「Redo」というプレフィックスが使用されていました。
関連項目: createUndoAction()、canRedo()、およびQUndoCommand::text()。
QAction *QUndoGroup::createUndoAction(QObject *parent, const QString &prefix = QString()) const
親オブジェクトparent を持つ、元に戻すQAction オブジェクトを作成します。
このアクションをトリガーすると、アクティブなスタック上でQUndoStack::undo()が呼び出されます。 このアクションのテキストは、常に、次に `undo()` が呼び出された際に元に戻されるコマンドのテキストに、`prefix` が接頭辞として付加されたものになります。元に戻すことのできるコマンドがない場合、グループが空の場合、またはアクティブなスタックがない場合、このアクションは無効になります。
prefix が空の場合、プレフィックスの代わりにデフォルトのテンプレート「Undo %1」が使用されます。Qt XML 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.