Spec-Zone.ru › Qt 6.1

Класс QUndoGroup

Класс QUndoGroup представляет собой группу объектов QUndoStack. Подробнее...

Заголовок: #include <QUndoGroup>
CMake: find_package(Qt6 COMPONENTS Gui REQUIRED) 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 см. обзор.

Приложение часто имеет несколько стеков отмены/повтора, по одному для каждого открытого документа. В то же время у приложения обычно есть один action отмены и один action повтора, который запускает отмену или повторение в активном документе.

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(), он обновит себя, чтобы отобразить активный стек.

Документация по функциям-членам

QUndoGroup::QUndoGroup(QObject *parent = nullptr)

Создает пустой объект QUndoGroup с родителем parent.

См. также addStack().

[signal] void QUndoGroup::activeStackChanged(QUndoStack *stack)

Этот сигнал испускается всякий раз, когда активный стек группы изменяется. Это может произойти при вызове setActiveStack() или QUndoStack::setActive(), или когда активный стек удаляется из группы. stack — новый активный стек. Если активный стек отсутствует, stack равен 0.

См. также setActiveStack() и QUndoStack::setActive().

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

Этот сигнал испускается всякий раз, когда активный стек испускает QUndoStack::canRedoChanged() или активный стек изменяется.

canRedo — новое состояние, или false, если активный стек равен 0.

См. также QUndoStack::canRedoChanged() и setActiveStack().

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

Этот сигнал испускается всякий раз, когда активный стек испускает QUndoStack::canUndoChanged() или активный стек изменяется.

canUndo — новое состояние, или false, если активный стек равен 0.

См. также QUndoStack::canUndoChanged() и setActiveStack().

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

Этот сигнал испускается всякий раз, когда активный стек испускает QUndoStack::cleanChanged() или активный стек изменяется.

clean — новое состояние, или true, если активный стек равен 0.

См. также QUndoStack::cleanChanged() и setActiveStack().

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

Этот сигнал испускается всякий раз, когда активный стек испускает QUndoStack::indexChanged() или активный стек изменяется.

idx — новый текущий индекс, или 0, если активный стек равен 0.

См. также QUndoStack::indexChanged() и setActiveStack().

[slot] void QUndoGroup::redo()

Вызывает QUndoStack::redo() на активном стеке.

Если ни один из стеков не активен или если группа пуста, эта функция ничего не делает.

См. также undo(), canRedo() и setActiveStack().

END_OF_DOCUMENT_MARKER

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

Этот сигнал излучается всякий раз, когда активная стопка излучает QUndoStack::redoTextChanged() или активная стопка меняется.

redoText — новое состояние или пустая строка, если активная стопка равна 0.

См. также QUndoStack::redoTextChanged() и setActiveStack().

[slot] void QUndoGroup::setActiveStack(QUndoStack *stack)

Устанавливает активную стопку этой группы в stack.

Если стопка не является членом этой группы, эта функция ничего не делает.

Эквивалентно вызову QUndoStack::setActive() для stack.

Действия, возвращаемые createUndoAction() и createRedoAction(), теперь ведут себя так же, как те, что возвращает QUndoStack::createUndoAction() и QUndoStack::createRedoAction() для stack.

См. также QUndoStack::setActive() и activeStack().

[slot] void QUndoGroup::undo()

Вызывает QUndoStack::undo() для активной стопки.

Если ни одна из стопок не активна или если группа пуста, эта функция ничего не делает.

См. также redo(), canUndo() и setActiveStack().

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

Этот сигнал излучается всякий раз, когда активная стопка излучает QUndoStack::undoTextChanged() или активная стопка меняется.

undoText — новое состояние или пустая строка, если активная стопка равна 0.

См. также QUndoStack::undoTextChanged() и setActiveStack().

[virtual] QUndoGroup::~QUndoGroup()

Уничтожает QUndoGroup.

QUndoStack *QUndoGroup::activeStack() const

Возвращает активную стопку этой группы.

Если ни одна из стопок не активна или если группа пуста, эта функция возвращает nullptr.

См. также setActiveStack() и QUndoStack::setActive().

void QUndoGroup::addStack(QUndoStack *stack)

Добавляет stack в эту группу. Группа не принимает владения стопкой. Другой способ добавить стопку в группу — указать группу в качестве родительского QObject стопки в QUndoStack::QUndoStack(). В этом случае стопка удаляется при удалении группы обычным для QObject способом.

См. также removeStack(), stacks() и QUndoStack::QUndoStack().

bool QUndoGroup::canRedo() const

Возвращает значение QUndoStack::canRedo() активной стопки.

Если ни одна из стопок не активна или если группа пуста, эта функция возвращает false.

См. также canUndo() и setActiveStack().

bool QUndoGroup::canUndo() const

Возвращает значение QUndoStack::canUndo() активной стопки.

Если ни одна из стопок не активна или если группа пуста, эта функция возвращает false.

См. также canRedo() и setActiveStack().

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

Создаёт объект QAction для отмены с родителем parent.

Вызов этого действия вызовет QUndoStack::redo() для активной стопки. Текст этого действия всегда будет текстом команды, которая будет отменена в следующем вызове redo(), с префиксом prefix. Если нет команды для отмены, если группа пуста или ни одна из стопок не активна, это действие будет отключено.

Если prefix пусто, используется шаблон по умолчанию «Отменить %1» вместо префикса. До Qt 4.8 по умолчанию использовался префикс «Отменить».

См. также createUndoAction(), canRedo() и QUndoCommand::text().

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

Создаёт объект QAction для возврата к предыдущему состоянию с родителем parent.

Вызов этого действия вызовет QUndoStack::undo() для активной стопки. Текст этого действия всегда будет текстом команды, которая будет отменена в следующем вызове undo(), с префиксом prefix. Если нет команды для отмены, если группа пуста или ни одна из стопок не активна, это действие будет отключено.

Если prefix пусто, используется шаблон по умолчанию «Вернуть %1» вместо префикса. До Qt 4.8 по умолчанию использовался префикс «Вернуть».

См. также createRedoAction(), canUndo() и QUndoCommand::text().

bool QUndoGroup::isClean() const

Возвращает значение QUndoStack::isClean() активной стопки.

Если ни одна из стопок не активна или если группа пуста, эта функция возвращает true.

См. также setActiveStack().

QString QUndoGroup::redoText() const

Возвращает значение QUndoStack::redoText() активной стопки.

Если ни одна из стопок не активна или если группа пуста, эта функция возвращает пустую строку.

См. также undoText() и setActiveStack().

void QUndoGroup::removeStack(QUndoStack *stack)

Удаляет stack из этой группы. Если стопка была активной, активной стопкой становится 0.

См. также addStack(), stacks() и QUndoStack::~QUndoStack().

QList<QUndoStack *> QUndoGroup::stacks() const

Возвращает список стопок в этой группе.

См. также addStack() и removeStack().

QString QUndoGroup::undoText() const

Возвращает значение QUndoStack::undoText() активной стопки.

Если ни одна из стопок не активна или если группа пуста, эта функция возвращает пустую строку.

См. также redoText() и setActiveStack().

© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-6.1/qundogroup.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API