QUndoGroup Class

QUndoGroupクラスは、QUndoStack オブジェクトのグループです。詳細...

Header: #include <QUndoGroup>
CMake: find_package(Qt6 REQUIRED COMPONENTS Gui)
target_link_libraries(mytarget PRIVATE Qt6::Gui)
qmake: QT += gui
Inherits: 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 の undo フレームワークの概要については、概要を参照してください。

アプリケーションは多くの場合、複数のアンドゥスタックを持っています。同時に、アプリケーションには通常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 と組み合わせても便利です。QUndoViewQUndoView::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 としてグループを指定することである。この場合、スタックは QObjects の通常の方法で、グループが削除されたときに削除されます。

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の場合は真である。

QUndoStack::cleanChanged() およびsetActiveStack()も参照

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

parent を持つやり直し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 を親とするアンドゥ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() の値を返す。

アクティブなスタックが1つもない場合、またはグループが空の場合、この関数は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 に設定する。

スタックがこのグループのメンバでない場合、この関数は何もしない。

stackQUndoStack::setActive() を呼び出すのと同義である。

createUndoAction() およびcreateRedoAction() が返すアクションは、stackQUndoStack::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()も参照してください

本ドキュメントに含まれる文書の著作権は、それぞれの所有者に帰属します 本書で提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。