Spec-Zone.ru › Qt 5.15

Класс QUndoGroup

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

Заголовок: #include <QUndoGroup>
qmake: QT += widgets
С тех пор как: Qt 4.2
Наследует: QObject

Этот класс был представлен в Qt 4.2.

  • Список всех членов, включая унаследованные члены

Открытые функции

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().

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

Spec-Zone.ru

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