Spec-Zone.ru › Qt

Класс 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 см. в обзоре.

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

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.2/qundogroup.html

Spec-Zone.ru

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