QUndoStack Class

Die Klasse QUndoStack ist ein Stapel von QUndoCommand Objekten. Mehr...

Kopfzeile: #include <QUndoStack>
CMake: find_package(Qt6 REQUIRED COMPONENTS Gui)
target_link_libraries(mytarget PRIVATE Qt6::Gui)
qmake: QT += gui
Vererbt: QObject

Eigenschaften

Öffentliche Funktionen

QUndoStack(QObject *parent = nullptr)
virtual ~QUndoStack()
void beginMacro(const QString &text)
bool canRedo() const
bool canUndo() const
int cleanIndex() const
void clear()
const QUndoCommand *command(int index) const
int count() const
QAction *createRedoAction(QObject *parent, const QString &prefix = QString()) const
QAction *createUndoAction(QObject *parent, const QString &prefix = QString()) const
void endMacro()
int index() const
bool isActive() const
bool isClean() const
void push(QUndoCommand *cmd)
QString redoText() const
void setUndoLimit(int limit)
QString text(int idx) const
int undoLimit() const
QString undoText() const

Öffentliche Slots

void redo()
void resetClean()
void setActive(bool active = true)
void setClean()
void setIndex(int idx)
void undo()

Signale

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 im Übersichtsdokument.

Ein Undo-Stack verwaltet einen Stapel von Befehlen, die auf ein Dokument angewendet wurden.

Neue Befehle werden mit push() auf den Stapel geschoben. Befehle können mit undo() und redo() oder durch Auslösen der von createUndoAction() und createRedoAction() zurückgegebenen Aktionen rückgängig gemacht und erneut ausgeführt werden.

QUndoStack behält den current Befehl im Auge. Dies ist der Befehl, der beim nächsten Aufruf von redo() ausgeführt wird. Der Index dieses Befehls wird von index() zurückgegeben. Der Zustand des bearbeiteten Objekts kann mit setIndex() vor- oder zurückgerollt werden. Wenn der oberste Befehl auf dem Stapel bereits bearbeitet wurde, ist index() gleich count().

QUndoStack bietet Unterstützung für Undo- und Redo-Aktionen, Befehlskompression, Befehlsmakros und unterstützt das Konzept eines sauberen Zustands.

Undo und Redo-Aktionen

QUndoStack bietet praktische Rückgängig- und Wiederherstellungsobjekte QAction, die in ein Menü oder eine Symbolleiste eingefügt werden können. Wenn Befehle rückgängig gemacht oder wiederhergestellt werden, aktualisiert QUndoStack die Texteigenschaften dieser Aktionen, um widerzuspiegeln, welche Änderung sie auslösen werden. Die Aktionen werden auch deaktiviert, wenn kein Befehl zum Rückgängigmachen oder Wiederherstellen verfügbar ist. Diese Aktionen werden von QUndoStack::createUndoAction() und QUndoStack::createRedoAction() zurückgegeben.

Befehlskomprimierung und Makros

Die Befehlskomprimierung ist nützlich, wenn mehrere Befehle zu einem einzigen Befehl komprimiert werden können, der in einem einzigen Vorgang rückgängig gemacht und wiederhergestellt werden kann. Wenn ein Benutzer zum Beispiel ein Zeichen in einen Texteditor eingibt, wird ein neuer Befehl erstellt. Dieser Befehl fügt das Zeichen an der Cursorposition in das Dokument ein. Für den Benutzer ist es jedoch bequemer, wenn er die Eingabe ganzer Wörter, Sätze oder Absätze rückgängig machen oder wiederholen kann. Mit der Befehlskomprimierung können diese Einzelzeichenbefehle zu einem einzigen Befehl zusammengefasst werden, der Textabschnitte einfügt oder löscht. Für weitere Informationen siehe QUndoCommand::mergeWith() und push().

Ein Befehlsmakro ist eine Folge von Befehlen, die alle in einem Durchgang rückgängig gemacht und erneut ausgeführt werden. Befehlsmakros werden erstellt, indem man einem Befehl eine Liste von untergeordneten Befehlen gibt. Wird der übergeordnete Befehl rückgängig gemacht oder wiederhergestellt, werden auch die untergeordneten Befehle rückgängig gemacht oder wiederhergestellt. Befehlsmakros können explizit durch die Angabe eines übergeordneten Befehls im QUndoCommand -Konstruktor oder durch die Verwendung der Komfortfunktionen beginMacro() und endMacro() erstellt werden.

Obwohl Befehlskomprimierung und Makros für den Benutzer den gleichen Effekt zu haben scheinen, haben sie in einer Anwendung oft unterschiedliche Verwendungszwecke. Befehle, die kleine Änderungen an einem Dokument vornehmen, können sinnvoll komprimiert werden, wenn keine Notwendigkeit besteht, sie einzeln aufzuzeichnen, und wenn nur größere Änderungen für den Benutzer relevant sind. Für Befehle, die einzeln aufgezeichnet werden müssen, oder solche, die nicht komprimiert werden können, ist es jedoch sinnvoll, Makros zu verwenden, um dem Benutzer mehr Komfort zu bieten und gleichzeitig eine Aufzeichnung jedes Befehls zu erhalten.

Sauberer Zustand

QUndoStack unterstützt das Konzept eines sauberen Zustands. Wenn das Dokument auf der Festplatte gespeichert wird, kann der Stapel mit setClean() als sauber markiert werden. Wann immer der Stack durch Rückgängigmachen und Wiederherstellen von Befehlen in diesen Zustand zurückkehrt, wird das Signal cleanChanged() ausgegeben. Dieses Signal wird auch ausgegeben, wenn der Stack den sauberen Zustand verlässt. Dieses Signal wird normalerweise verwendet, um die Speicheraktionen in der Anwendung zu aktivieren und zu deaktivieren und um den Titel des Dokuments zu aktualisieren, um anzuzeigen, dass es ungespeicherte Änderungen enthält.

Veraltete Befehle

QUndoStack ist in der Lage, Befehle aus dem Stapel zu löschen, wenn der Befehl nicht mehr benötigt wird. Ein Beispiel ist das Löschen eines Befehls, wenn zwei Befehle so zusammengeführt werden, dass der zusammengeführte Befehl keine Funktion mehr hat. Dies ist z. B. bei Bewegungsbefehlen der Fall, bei denen der Benutzer die Maus an einen Teil des Bildschirms bewegt und sie dann an die ursprüngliche Position zurückbringt. Der zusammengefasste Befehl führt zu einer Mausbewegung von 0. Dieser Befehl kann gelöscht werden, da er keinen Zweck erfüllt. Ein weiteres Beispiel sind Netzwerkbefehle, die aufgrund von Verbindungsproblemen fehlschlagen. In diesem Fall ist der Befehl vom Stapel zu entfernen, da die Funktionen redo() und undo() keine Funktion haben, da es zu Verbindungsproblemen kam.

Ein Befehl kann mit der Funktion QUndoCommand::setObsolete() als obsolet markiert werden. Das Kennzeichen QUndoCommand::isObsolete() wird in QUndoStack::push(), QUndoStack::undo(), QUndoStack::redo() und QUndoStack::setIndex() nach dem Aufruf von QUndoCommand::undo(), QUndoCommand::redo() und QUndoCommand:mergeWith() geprüft, sofern zutreffend.

Wenn ein Befehl auf veraltet gesetzt wird und der Clean-Index größer oder gleich dem aktuellen Befehlsindex ist, wird der Clean-Index zurückgesetzt, wenn der Befehl vom Stapel gelöscht wird.

Siehe auch QUndoCommand und QUndoView.

Dokumentation der Eigenschaft

active : bool

Diese Eigenschaft enthält den aktiven Status dieses Stapels.

Eine Anwendung hat oft mehrere Rückgängig-Stapel, einen für jedes geöffnete Dokument. Der aktive Stapel ist derjenige, der mit dem gerade aktiven Dokument verbunden ist. Wenn der Stapel zu einem QUndoGroup gehört, werden Aufrufe an QUndoGroup::undo() oder QUndoGroup::redo() an diesen Stapel weitergeleitet, wenn er aktiv ist. Wenn der QUndoGroup von einem QUndoView überwacht wird, zeigt die Ansicht den Inhalt dieses Stapels an, wenn er aktiv ist. Wenn der Stack nicht zu einem QUndoGroup gehört, hat es keine Auswirkungen, wenn er aktiviert wird.

Es liegt in der Verantwortung des Programmierers festzulegen, welcher Stack aktiv ist, indem er setActive() aufruft, normalerweise wenn das zugehörige Dokumentfenster den Fokus erhält.

Zugriffsfunktionen:

bool isActive() const
void setActive(bool active = true)

Siehe auch QUndoGroup.

[read-only] canRedo : const bool

Diese Eigenschaft gibt an, ob dieser Stapel wiederholt werden kann.

Diese Eigenschaft zeigt an, ob es einen Befehl gibt, der wiederholt werden kann oder nicht.

Zugriffsfunktionen:

bool canRedo() const

Benachrichtigungssignal:

void canRedoChanged(bool canRedo)

Siehe auch canRedo(), index(), und canUndo().

[read-only] canUndo : const bool

Diese Eigenschaft gibt an, ob dieser Stapel rückgängig gemacht werden kann.

Diese Eigenschaft zeigt an, ob es einen Befehl gibt, der rückgängig gemacht werden kann oder nicht.

Zugriffsfunktionen:

bool canUndo() const

Benachrichtigungssignal:

void canUndoChanged(bool canUndo)

Siehe auch canUndo(), index(), und canRedo().

[read-only] clean : const bool

Diese Eigenschaft enthält den Clean-Status dieses Stacks.

Diese Eigenschaft gibt an, ob der Stapel bereinigt ist oder nicht. Ein Stapel ist zum Beispiel sauber, wenn ein Dokument gespeichert wurde.

Zugriffsfunktionen:

bool isClean() const

Benachrichtigungssignal:

void cleanChanged(bool clean)

Siehe auch isClean(), setClean(), resetClean(), und cleanIndex().

[read-only] redoText : const QString

Diese Eigenschaft enthält den Redo-Text des nächsten Befehls, der erneut ausgeführt wird.

Diese Eigenschaft enthält den Text des Befehls, der beim nächsten Aufruf von redo() erneut ausgeführt wird.

Zugriffsfunktionen:

QString redoText() const

Benachrichtigungssignal:

void redoTextChanged(const QString &redoText)

Siehe auch redoText(), QUndoCommand::actionText(), und undoText().

undoLimit : int

Diese Eigenschaft enthält die maximale Anzahl von Befehlen auf diesem Stapel.

Wenn die Anzahl der Befehle auf einem Stapel das UndoLimit des Stapels überschreitet, werden die Befehle vom unteren Ende des Stapels gelöscht. Makrobefehle (Befehle mit untergeordneten Befehlen) werden als ein Befehl behandelt. Der Standardwert ist 0, was bedeutet, dass es keine Begrenzung gibt.

Diese Eigenschaft darf nur gesetzt werden, wenn der Rückgängig-Stapel leer ist, da das Setzen bei einem nicht leeren Stapel den Befehl am aktuellen Index löschen könnte. Der Aufruf von setUndoLimit() bei einem nicht leeren Stapel gibt eine Warnung aus und bewirkt nichts.

Zugriffsfunktionen:

int undoLimit() const
void setUndoLimit(int limit)

[read-only] undoText : const QString

Diese Eigenschaft enthält den Rückgängigmachungstext des nächsten Befehls, der rückgängig gemacht wird.

Diese Eigenschaft enthält den Text des Befehls, der beim nächsten Aufruf von undo() rückgängig gemacht werden soll.

Zugriffsfunktionen:

QString undoText() const

Benachrichtigungssignal:

void undoTextChanged(const QString &undoText)

Siehe auch undoText(), QUndoCommand::actionText(), und redoText().

Dokumentation der Mitgliedsfunktionen

[explicit] QUndoStack::QUndoStack(QObject *parent = nullptr)

Konstruiert einen leeren Rückgängig-Stapel mit dem übergeordneten parent. Der Stapel befindet sich zunächst im sauberen Zustand. Wenn parent ein QUndoGroup Objekt ist, wird der Stapel automatisch zur Gruppe hinzugefügt.

Siehe auch push().

[virtual noexcept] QUndoStack::~QUndoStack()

Zerstört den Rückgängig-Stapel und löscht alle Befehle, die sich auf ihm befinden. Wenn sich der Stapel in einer QUndoGroup befindet, wird der Stapel automatisch aus der Gruppe entfernt.

Siehe auch QUndoStack().

void QUndoStack::beginMacro(const QString &text)

Beginnt die Komposition eines Makrobefehls mit der angegebenen text Beschreibung.

Ein leerer Befehl, der durch die angegebene text beschrieben wird, wird auf den Stack geschoben. Alle nachfolgenden Befehle, die auf den Stack gelegt werden, werden an die Kinder des leeren Befehls angehängt, bis endMacro() aufgerufen wird.

Aufrufe von beginMacro() und endMacro() können verschachtelt werden, aber jeder Aufruf von beginMacro() muss einen passenden Aufruf von endMacro() haben.

Während ein Makro zusammengesetzt wird, ist der Stack deaktiviert. Das bedeutet, dass:

Der Stack wird aktiviert und entsprechende Signale werden ausgegeben, wenn endMacro() für das äußerste Makro aufgerufen wird.

stack.beginMacro("insert red text");
stack.push(new InsertText(document, idx, text));
stack.push(new SetColor(document, idx, text.length(), Qt::red));
stack.endMacro(); // indexChanged() is emitted

Dieser Code ist äquivalent zu:

QUndoCommand *insertRed = new QUndoCommand(); // an empty command
insertRed->setText("insert red text");

new InsertText(document, idx, text, insertRed); // becomes child of insertRed
new SetColor(document, idx, text.length(), Qt::red, insertRed);

stack.push(insertRed);

Siehe auch endMacro().

bool QUndoStack::canRedo() const

Gibt true zurück, wenn ein Befehl zur Wiederholung verfügbar ist; andernfalls wird false zurückgegeben.

Diese Funktion gibt false zurück, wenn der Stapel leer ist oder wenn der oberste Befehl auf dem Stapel bereits wiederholt wurde.

Synonym zu index() == count().

Hinweis: Getter-Funktion für die Eigenschaft canRedo.

Siehe auch index() und canUndo().

[signal] void QUndoStack::canRedoChanged(bool canRedo)

Dieses Signal wird ausgesendet, wenn sich der Wert von canRedo() ändert. Es wird verwendet, um die von createRedoAction() zurückgegebene Redo-Aktion zu aktivieren oder zu deaktivieren. canRedo gibt den neuen Wert an.

Hinweis: Benachrichtigungssignal für die Eigenschaft canRedo.

bool QUndoStack::canUndo() const

Gibt true zurück, wenn ein Befehl zum Rückgängigmachen verfügbar ist; andernfalls false.

Diese Funktion gibt false zurück, wenn der Stapel leer ist oder wenn der unterste Befehl auf dem Stapel bereits rückgängig gemacht wurde.

Synonym zu index() == 0.

Hinweis: Getter-Funktion für die Eigenschaft canUndo.

Siehe auch index() und canRedo().

[signal] void QUndoStack::canUndoChanged(bool canUndo)

Dieses Signal wird ausgesendet, wenn sich der Wert von canUndo() ändert. Es wird verwendet, um die von createUndoAction() zurückgegebene Rückgängig-Maßnahme zu aktivieren oder zu deaktivieren. canUndo gibt den neuen Wert an.

Hinweis: Benachrichtigungssignal für die Eigenschaft canUndo.

[signal] void QUndoStack::cleanChanged(bool clean)

Dieses Signal wird immer dann ausgegeben, wenn der Stack den sauberen Zustand erreicht oder verlässt. Wenn clean wahr ist, befindet sich der Stapel in einem sauberen Zustand; andernfalls zeigt dieses Signal an, dass er den sauberen Zustand verlassen hat.

Hinweis: Benachrichtigungssignal für die Eigenschaft clean.

Siehe auch isClean() und setClean().

int QUndoStack::cleanIndex() const

Gibt den sauberen Index zurück. Dies ist der Index, bei dem setClean() aufgerufen wurde.

Ein Stapel hat möglicherweise keinen sauberen Index. Dies geschieht, wenn ein Dokument gespeichert wird, einige Befehle rückgängig gemacht werden und dann ein neuer Befehl eingefügt wird. Da push() alle rückgängig gemachten Befehle löscht, bevor der neue Befehl eingefügt wird, kann der Stapel nicht mehr in den sauberen Zustand zurückkehren. In diesem Fall gibt die Funktion -1 zurück. Die -1 kann auch nach einem expliziten Aufruf von resetClean() zurückgegeben werden.

Siehe auch isClean() und setClean().

void QUndoStack::clear()

Löscht den Befehlsstapel, indem alle Befehle darin gelöscht werden, und setzt den Stapel in den sauberen Zustand zurück.

Befehle werden nicht rückgängig gemacht oder wiederhergestellt; der Zustand des bearbeiteten Objekts bleibt unverändert.

Diese Funktion wird normalerweise verwendet, wenn der Inhalt des Dokuments aufgegeben wird.

Siehe auch QUndoStack().

const QUndoCommand *QUndoStack::command(int index) const

Gibt einen Konstantenzeiger auf den Befehl an index zurück.

Diese Funktion gibt einen const-Zeiger zurück, da die Änderung eines Befehls, nachdem er auf den Stack geschoben und ausgeführt wurde, fast immer den Zustand des Dokuments beschädigt, wenn der Befehl später rückgängig gemacht oder erneut ausgeführt wird.

Siehe auch QUndoCommand::child().

int QUndoStack::count() const

Gibt die Anzahl der Befehle auf dem Stack zurück. Makrobefehle werden als ein Befehl gezählt.

Siehe auch index(), setIndex(), und command().

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

Erzeugt ein redo QAction Objekt mit dem angegebenen parent.

Das Auslösen dieser Aktion führt zu einem Aufruf von redo(). Der Text dieser Aktion ist der Text des Befehls, der beim nächsten Aufruf von redo() wiederholt wird, vorangestellt durch den angegebenen prefix. Wenn kein Befehl zur Wiederholung verfügbar 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 *QUndoStack::createUndoAction(QObject *parent, const QString &prefix = QString()) const

Erzeugt ein Undo-Objekt QAction mit dem angegebenen parent.

Das Auslösen dieser Aktion führt zu einem Aufruf von undo(). Der Text dieser Aktion ist 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, 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().

void QUndoStack::endMacro()

Beendet die Komposition eines Makrobefehls.

Wenn dies das äußerste Makro in einem Satz verschachtelter Makros ist, gibt diese Funktion indexChanged() einmal für den gesamten Makrobefehl aus.

Siehe auch beginMacro().

int QUndoStack::index() const

Gibt den Index des aktuellen Befehls zurück. Dies ist der Befehl, der beim nächsten Aufruf von redo() ausgeführt wird. Es ist nicht immer der oberste Befehl auf dem Stack, da eine Reihe von Befehlen rückgängig gemacht worden sein kann.

Siehe auch setIndex(), undo(), redo(), und count().

[signal] void QUndoStack::indexChanged(int idx)

Dieses Signal wird immer dann ausgegeben, wenn ein Befehl den Zustand des Dokuments verändert. Dies geschieht, wenn ein Befehl rückgängig gemacht oder erneut ausgeführt wird. Wenn ein Makrobefehl rückgängig gemacht oder wiederhergestellt wird oder setIndex() aufgerufen wird, wird dieses Signal nur einmal ausgegeben.

idx gibt den Index des aktuellen Befehls an, d. h. den Befehl, der beim nächsten Aufruf von redo() ausgeführt wird.

Siehe auch index() und setIndex().

bool QUndoStack::isClean() const

Wenn sich der Stapel im sauberen Zustand befindet, wird true zurückgegeben; andernfalls wird false zurückgegeben.

Hinweis: Getter-Funktion für die Eigenschaft clean.

Siehe auch setClean() und cleanIndex().

void QUndoStack::push(QUndoCommand *cmd)

Schiebt cmd auf den Stapel oder fügt es mit dem zuletzt ausgeführten Befehl zusammen. In beiden Fällen wird cmd durch Aufruf seiner Funktion redo() ausgeführt.

Wenn die ID von cmd nicht -1 ist und die ID mit der des zuletzt ausgeführten Befehls übereinstimmt, versucht QUndoStack, die beiden Befehle durch den Aufruf von QUndoCommand::mergeWith() mit dem zuletzt ausgeführten Befehl zusammenzuführen. Wenn QUndoCommand::mergeWith() true zurückgibt, wird cmd gelöscht.

Nach dem Aufruf von QUndoCommand::redo() und ggf. QUndoCommand::mergeWith() wird QUndoCommand::isObsolete() für cmd oder den zusammengefassten Befehl aufgerufen. Wenn QUndoCommand::isObsolete() true zurückgibt, wird cmd oder der zusammengefasste Befehl vom Stapel gelöscht.

In allen anderen Fällen wird cmd einfach auf den Stack geschoben.

Wenn Befehle rückgängig gemacht wurden, bevor cmd verschoben wurde, werden der aktuelle Befehl und alle Befehle darüber gelöscht. Daher steht cmd am Ende immer ganz oben auf dem Stapel.

Sobald ein Befehl verschoben wurde, ist der Stack Eigentümer des Befehls. Es gibt keine Getter, die den Befehl zurückgeben, da eine Änderung des Befehls nach seiner Ausführung fast immer zu einer Beschädigung des Dokumentzustands führt.

Siehe auch QUndoCommand::id() und QUndoCommand::mergeWith().

[slot] void QUndoStack::redo()

Wiederholt den aktuellen Befehl durch Aufruf von QUndoCommand::redo(). Erhöht den Index des aktuellen Befehls.

Wenn der Stapel leer ist oder wenn der oberste Befehl auf dem Stapel bereits wiederholt wurde, führt diese Funktion nichts aus.

Wenn QUndoCommand::isObsolete() für den aktuellen Befehl true zurückgibt, wird der Befehl vom Stapel gelöscht. Wenn der Clean-Index größer oder gleich dem aktuellen Befehlsindex ist, wird der Clean-Index zurückgesetzt.

Siehe auch undo() und index().

QString QUndoStack::redoText() const

Gibt den Text des Befehls zurück, der beim nächsten Aufruf von redo() erneut ausgeführt werden soll.

Hinweis: Getter-Funktion für die Eigenschaft redoText.

Siehe auch QUndoCommand::actionText() und undoText().

[signal] void QUndoStack::redoTextChanged(const QString &redoText)

Dieses Signal wird ausgesendet, wenn sich der Wert von redoText() ändert. Es wird verwendet, um die Texteigenschaft der Redo-Aktion zu aktualisieren, die von createRedoAction() zurückgegeben wird. redoText gibt den neuen Text an.

Hinweis: Benachrichtigungssignal für die Eigenschaft redoText.

[slot] void QUndoStack::resetClean()

Verlässt den sauberen Zustand und gibt cleanChanged() aus, wenn der Stapel sauber war. Diese Methode setzt den Clean-Index auf -1 zurück.

Sie wird typischerweise in den folgenden Fällen aufgerufen, wenn ein Dokument:

  • auf der Grundlage einer Vorlage erstellt und noch nicht gespeichert wurde, so dass dem Dokument noch kein Dateiname zugeordnet wurde.
  • aus einer Sicherungsdatei wiederhergestellt wurde.
  • außerhalb des Editors geändert wurde und der Benutzer es nicht neu geladen hat.

Siehe auch isClean(), setClean(), und cleanIndex().

[slot] void QUndoStack::setClean()

Markiert den Stapel als sauber und gibt cleanChanged() aus, wenn der Stapel nicht bereits sauber war.

Dies wird typischerweise aufgerufen, wenn z. B. ein Dokument gespeichert wird.

Wann immer der Stapel durch die Verwendung von Undo-/Redo-Befehlen in diesen Zustand zurückkehrt, wird das Signal cleanChanged() ausgegeben. Dieses Signal wird auch ausgegeben, wenn der Stack den Clean-Status verlässt.

Siehe auch isClean(), resetClean(), und cleanIndex().

[slot] void QUndoStack::setIndex(int idx)

Ruft wiederholt undo() oder redo() auf, bis der aktuelle Befehlsindex idx erreicht. Diese Funktion kann verwendet werden, um den Zustand des Dokuments vorwärts oder rückwärts zu rollen. indexChanged() wird nur einmal ausgegeben.

Siehe auch index(), count(), undo(), und redo().

QString QUndoStack::text(int idx) const

Gibt den Text des Befehls mit dem Index idx zurück.

Siehe auch beginMacro().

[slot] void QUndoStack::undo()

Macht den Befehl unterhalb des aktuellen Befehls durch Aufruf von QUndoCommand::undo() rückgängig. Verringert den Index des aktuellen Befehls.

Wenn der Stapel leer ist oder wenn der unterste Befehl auf dem Stapel bereits rückgängig gemacht wurde, bewirkt diese Funktion nichts.

Wenn QUndoCommand::isObsolete() nach dem Rückgängigmachen des Befehls true zurückgibt, wird der Befehl vom Stapel gelöscht. Wenn der Clean-Index größer oder gleich dem aktuellen Befehlsindex ist, wird der Clean-Index außerdem zurückgesetzt.

Siehe auch redo() und index().

QString QUndoStack::undoText() const

Gibt den Text des Befehls zurück, der beim nächsten Aufruf von undo() rückgängig gemacht werden soll.

Hinweis: Getter-Funktion für die Eigenschaft undoText.

Siehe auch QUndoCommand::actionText() und redoText().

[signal] void QUndoStack::undoTextChanged(const QString &undoText)

Dieses Signal wird ausgesendet, wenn sich der Wert von undoText() ändert. Es wird verwendet, um die Texteigenschaft der Rückgängig-Aktion zu aktualisieren, die von createUndoAction() zurückgegeben wird. undoText gibt den neuen Text an.

Hinweis: Meldesignal für die Eigenschaft undoText.

© 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.