QUndoGroup Class
Die Klasse QUndoGroup ist eine Gruppe von QUndoStack Objekten. Mehr...
Kopfzeile: | #include <QUndoGroup> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS Gui) target_link_libraries(mytarget PRIVATE Qt6::Gui) |
qmake: | QT += gui |
Vererbungen: | QObject |
Öffentliche Funktionen
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 |
Öffentliche Slots
void | redo() |
void | setActiveStack(QUndoStack *stack) |
void | undo() |
Signale
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) |
Detaillierte Beschreibung
Einen Überblick über das Undo-Framework von Qt finden Sie in der Übersicht.
Eine Anwendung hat oft mehrere Undo-Stapel, einen für jedes geöffnete Dokument. Gleichzeitig hat eine Anwendung normalerweise eine Undo-Aktion und eine Redo-Aktion, die das Undo oder Redo im aktiven Dokument auslöst.
QUndoGroup ist eine Gruppe von QUndoStack Objekten, von denen eines aktiv sein kann. Sie hat einen undo() und redo() Slot, der QUndoStack::undo() und QUndoStack::redo() für den aktiven Stapel aufruft. Außerdem verfügt es über die Funktionen createUndoAction() und createRedoAction(). Die von diesen Funktionen zurückgegebenen Aktionen verhalten sich genauso wie die von QUndoStack::createUndoAction() und QUndoStack::createRedoAction() zurückgegebenen Aktionen des aktiven Stapels.
Stapel werden mit addStack() zu einer Gruppe hinzugefügt und mit removeStack() wieder entfernt. Ein Stapel wird implizit zu einer Gruppe hinzugefügt, wenn er mit der Gruppe als Elternteil QObject erstellt wird.
Es liegt in der Verantwortung des Programmierers festzulegen, welcher Stack aktiv ist, indem er QUndoStack::setActive() aufruft, normalerweise wenn das zugehörige Dokumentfenster den Fokus erhält. Der aktive Stapel kann auch mit setActiveStack() festgelegt werden und wird von activeStack() zurückgegeben.
Wenn ein Stack mit addStack() zu einer Gruppe hinzugefügt wird, übernimmt die Gruppe nicht die Eigentümerschaft des Stacks. Das bedeutet, dass der Stack getrennt von der Gruppe gelöscht werden muss. Wenn ein Stack gelöscht wird, wird er automatisch aus einer Gruppe entfernt. Ein Stack kann nur zu einer Gruppe gehören. Wird er einer anderen Gruppe hinzugefügt, so wird er aus der vorherigen Gruppe entfernt.
Eine QUndoGroup ist auch in Verbindung mit QUndoView nützlich. Wenn QUndoView mit QUndoView::setGroup() so eingestellt wird, dass es eine Gruppe überwacht, aktualisiert es sich selbst, um den aktiven Stack anzuzeigen.
Dokumentation der Mitgliedsfunktionen
[explicit]
QUndoGroup::QUndoGroup(QObject *parent = nullptr)
Erzeugt ein leeres QUndoGroup-Objekt mit übergeordnetem parent.
Siehe auch addStack().
[virtual noexcept]
QUndoGroup::~QUndoGroup()
Zerstört die QUndoGroup.
QUndoStack *QUndoGroup::activeStack() const
Gibt den aktiven Stapel dieser Gruppe zurück.
Wenn keiner der Stapel aktiv ist oder die Gruppe leer ist, gibt diese Funktion nullptr
zurück.
Siehe auch setActiveStack() und QUndoStack::setActive().
[signal]
void QUndoGroup::activeStackChanged(QUndoStack *stack)
Dieses Signal wird ausgegeben, wenn sich der aktive Stapel der Gruppe ändert. Dies kann geschehen, wenn setActiveStack() oder QUndoStack::setActive() aufgerufen wird, oder wenn der aktive Stack aus der Gruppe entfernt wird. stack ist der neue aktive Stack. Wenn kein Stack aktiv ist, ist stack gleich 0.
Siehe auch setActiveStack() und QUndoStack::setActive().
void QUndoGroup::addStack(QUndoStack *stack)
Fügt stack zu dieser Gruppe hinzu. Die Gruppe übernimmt nicht das Eigentum an dem Stapel. Eine andere Möglichkeit, einen Stack zu einer Gruppe hinzuzufügen, ist die Angabe der Gruppe als übergeordnetes Objekt des Stacks QObject in QUndoStack::QUndoStack(). In diesem Fall wird der Stack gelöscht, wenn die Gruppe gelöscht wird, wie es bei QObjects üblich ist.
Siehe auch removeStack(), stacks(), und QUndoStack::QUndoStack().
bool QUndoGroup::canRedo() const
Gibt den Wert des aktiven Stapels QUndoStack::canRedo() zurück.
Wenn keiner der Stacks aktiv ist oder die Gruppe leer ist, gibt diese Funktion false
zurück.
Siehe auch canUndo() und setActiveStack().
[signal]
void QUndoGroup::canRedoChanged(bool canRedo)
Dieses Signal wird immer dann ausgegeben, wenn der aktive Stapel QUndoStack::canRedoChanged() sendet oder sich der aktive Stapel ändert.
canRedo ist der neue Zustand, oder false, wenn der aktive Stack 0 ist.
Siehe auch QUndoStack::canRedoChanged() und setActiveStack().
bool QUndoGroup::canUndo() const
Gibt den Wert des aktiven Stapels QUndoStack::canUndo() zurück.
Wenn keiner der Stacks aktiv ist oder die Gruppe leer ist, gibt diese Funktion false
zurück.
Siehe auch canRedo() und setActiveStack().
[signal]
void QUndoGroup::canUndoChanged(bool canUndo)
Dieses Signal wird ausgegeben, wenn der aktive Stapel QUndoStack::canUndoChanged() ausgibt oder sich der aktive Stapel ändert.
canUndo ist der neue Zustand, oder false, wenn der aktive Stack 0 ist.
Siehe auch QUndoStack::canUndoChanged() und setActiveStack().
[signal]
void QUndoGroup::cleanChanged(bool clean)
Dieses Signal wird immer dann ausgegeben, wenn der aktive Stapel QUndoStack::cleanChanged() ausgibt oder sich der aktive Stapel ändert.
clean ist der neue Zustand, oder wahr, wenn der aktive Stapel 0 ist.
Siehe auch QUndoStack::cleanChanged() und setActiveStack().
QAction *QUndoGroup::createRedoAction(QObject *parent, const QString &prefix = QString()) const
Erzeugt ein redo QAction Objekt mit dem übergeordneten parent.
Das Auslösen dieser Aktion führt zu einem Aufruf von QUndoStack::redo() auf dem aktiven Stapel. Der Text dieser Aktion ist immer der Text des Befehls, der beim nächsten Aufruf von redo() wiederholt werden soll, mit dem Präfix prefix. Wenn kein Befehl zur Wiederholung verfügbar ist, die Gruppe leer ist oder keiner der Stapel aktiv ist, wird diese Aktion deaktiviert.
Wenn prefix leer ist, wird die Standardvorlage "Redo %1" anstelle des Präfixes verwendet. Vor Qt 4.8 wurde standardmäßig das Präfix "Redo" verwendet.
Siehe auch createUndoAction(), canRedo(), und QUndoCommand::text().
QAction *QUndoGroup::createUndoAction(QObject *parent, const QString &prefix = QString()) const
Erzeugt ein Undo-Objekt QAction mit dem übergeordneten parent.
Das Auslösen dieser Aktion bewirkt einen Aufruf von QUndoStack::undo() auf dem aktiven Stapel. Der Text dieser Aktion ist immer der Text des Befehls, der beim nächsten Aufruf von undo() rückgängig gemacht werden soll, mit dem Präfix prefix. Wenn kein Befehl zum Rückgängigmachen verfügbar ist, die Gruppe leer ist oder keiner der Stapel aktiv ist, wird diese Aktion deaktiviert.
Wenn prefix leer ist, wird die Standardvorlage "Undo %1" anstelle des Präfixes verwendet. Vor Qt 4.8 wurde standardmäßig das Präfix "Undo" verwendet.
Siehe auch createRedoAction(), canUndo(), und QUndoCommand::text().
[signal]
void QUndoGroup::indexChanged(int idx)
Dieses Signal wird immer dann ausgegeben, wenn der aktive Stapel QUndoStack::indexChanged() ausgibt oder sich der aktive Stapel ändert.
idx ist der neue aktuelle Index, oder 0, wenn der aktive Stapel 0 ist.
Siehe auch QUndoStack::indexChanged() und setActiveStack().
bool QUndoGroup::isClean() const
Gibt den Wert des aktiven Stapels QUndoStack::isClean() zurück.
Wenn keiner der Stacks aktiv ist oder die Gruppe leer ist, gibt diese Funktion true
zurück.
Siehe auch setActiveStack().
[slot]
void QUndoGroup::redo()
Ruft QUndoStack::redo() für den aktiven Stapel auf.
Wenn keiner der Stapel aktiv ist oder wenn die Gruppe leer ist, führt diese Funktion nichts aus.
Siehe auch undo(), canRedo(), und setActiveStack().
QString QUndoGroup::redoText() const
Gibt den Wert von QUndoStack::redoText() des aktiven Stapels zurück.
Wenn keiner der Stacks aktiv ist oder die Gruppe leer ist, gibt diese Funktion eine leere Zeichenkette zurück.
Siehe auch undoText() und setActiveStack().
[signal]
void QUndoGroup::redoTextChanged(const QString &redoText)
Dieses Signal wird immer dann ausgegeben, wenn der aktive Stapel QUndoStack::redoTextChanged() ausgibt oder sich der aktive Stapel ändert.
redoText ist der neue Zustand oder ein leerer String, wenn der aktive Stapel 0 ist.
Siehe auch QUndoStack::redoTextChanged() und setActiveStack().
void QUndoGroup::removeStack(QUndoStack *stack)
Entfernt stack aus dieser Gruppe. Wenn der Stapel der aktive Stapel in der Gruppe war, wird der aktive Stapel zu 0.
Siehe auch addStack(), stacks(), und QUndoStack::~QUndoStack().
[slot]
void QUndoGroup::setActiveStack(QUndoStack *stack)
Setzt den aktiven Stack dieser Gruppe auf stack.
Wenn der Stack nicht zu dieser Gruppe gehört, bewirkt diese Funktion nichts.
Synonym zum Aufruf von QUndoStack::setActive() auf stack.
Die Aktionen, die von createUndoAction() und createRedoAction() zurückgegeben werden, verhalten sich nun genauso wie die von stack's QUndoStack::createUndoAction() und QUndoStack::createRedoAction() zurückgegebenen.
Siehe auch QUndoStack::setActive() und activeStack().
QList<QUndoStack *> QUndoGroup::stacks() const
Gibt eine Liste der Stapel in dieser Gruppe zurück.
Siehe auch addStack() und removeStack().
[slot]
void QUndoGroup::undo()
Ruft QUndoStack::undo() für den aktiven Stapel auf.
Wenn keiner der Stapel aktiv ist oder wenn die Gruppe leer ist, führt diese Funktion nichts aus.
Siehe auch redo(), canUndo(), und setActiveStack().
QString QUndoGroup::undoText() const
Gibt den Wert von QUndoStack::undoText() des aktiven Stapels zurück.
Wenn keiner der Stacks aktiv ist oder die Gruppe leer ist, gibt diese Funktion eine leere Zeichenkette zurück.
Siehe auch redoText() und setActiveStack().
[signal]
void QUndoGroup::undoTextChanged(const QString &undoText)
Dieses Signal wird immer dann ausgegeben, wenn der aktive Stapel QUndoStack::undoTextChanged() ausgibt oder sich der aktive Stapel ändert.
undoText ist der neue Zustand oder ein leerer String, wenn der aktive Stapel 0 ist.
Siehe auch QUndoStack::undoTextChanged() und setActiveStack().
© 2025 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.