Класс QUndoGroup
Класс QUndoGroup представляет собой группу объектов QUndoStack. Подробнее...
| Заголовок: | #include <QUndoGroup> |
| qmake: | QT += widgets |
| С момента: | Qt 4.2 |
| Наследует: | QObject |
Публичные функции
| QUndoGroup(QObject *parent = Q_NULLPTR) | |
| ~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 |
- 31 public functions inherited from QObject
Публичные слоты
| void | redo() |
| void | setActiveStack(QUndoStack *stack) |
| void | undo() |
- 1 public slot inherited from QObject
Сигналы
| 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) |
- 2 signals inherited from QObject
Дополнительные унаследованные члены
- 1 свойство, унаследованное от QObject
- 11 статических публичных членов, унаследованных от QObject
- 9 защищенных функций, унаследованных от QObject
Подробное описание
Класс QUndoGroup представляет собой группу объектов QUndoStack.
Обзор механизма отмены/повтор выполнения 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 = Q_NULLPTR)
Создаёт пустой объект QUndoGroup с родительским объектом parent.
См. также addStack().
QUndoGroup::~QUndoGroup()
Уничтожает QUndoGroup.
QUndoStack *QUndoGroup::activeStack() const
Возвращает активный стек этой группы.
Если ни один из стеков не активен или группа пуста, функция возвращает 0.
См. также setActiveStack() и QUndoStack::setActive().
[signal] void QUndoGroup::activeStackChanged(QUndoStack *stack)
Этот сигнал генерируется всякий раз, когда активный стек группы изменяется. Это может произойти при вызове setActiveStack() или QUndoStack::setActive(), или когда активный стек удаляется из группы. stack — новый активный стек. Если активный стек отсутствует, stack равен 0.
См. также setActiveStack() и QUndoStack::setActive().
void QUndoGroup::addStack(QUndoStack *stack)
Добавляет stack в эту группу. Группа не берёт на себя владение стеком. Другой способ добавления стека в группу — указание группы в качестве родительского объекта QObject стека в QUndoStack::QUndoStack(). В этом случае, стек удаляется при удалении группы обычным способом для QObjects.
См. также removeStack(), stacks(), и QUndoStack::QUndoStack().
bool QUndoGroup::canRedo() const
Возвращает значение QUndoStack::canRedo() активного стека.
Если ни один из стеков не активен или группа пуста, функция возвращает false.
См. также canUndo() и setActiveStack().
[signal] void QUndoGroup::canRedoChanged(bool canRedo)
Этот сигнал генерируется всякий раз, когда активный стек генерирует QUndoStack::canRedoChanged() или активный стек изменяется.
canRedo — новое состояние, или false, если активная стопка равна 0.
См. также QUndoStack::canRedoChanged() и setActiveStack().
bool QUndoGroup::canUndo() const
Возвращает значение QUndoStack::canUndo() активной стопки.
Если ни одна из стопок не активна или группа пуста, эта функция возвращает false.
См. также canRedo() и 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().
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().
[signal] void QUndoGroup::indexChanged(int idx)
Этот сигнал испускается всякий раз, когда активная стопка испускает QUndoStack::indexChanged() или активная стопка меняется.
idx — новый текущий индекс или 0, если активная стопка равна 0.
См. также QUndoStack::indexChanged() и setActiveStack().
bool QUndoGroup::isClean() const
Возвращает значение QUndoStack::isClean() активной стопки.
Если ни одна из стопок не активна или группа пуста, эта функция возвращает true.
См. также setActiveStack().
[slot] void QUndoGroup::redo()
Вызывает QUndoStack::redo() на активной стопке.
Если ни одна из стопок не активна или группа пуста, эта функция ничего не делает.
См. также undo(), canRedo() и setActiveStack().
QString QUndoGroup::redoText() const
Возвращает значение QUndoStack::redoText() активной стопки.
Если ни одна из стопок не активна или группа пуста, эта функция возвращает пустую строку.
См. также undoText() и setActiveStack().
[signal] void QUndoGroup::redoTextChanged(const QString &redoText)
Этот сигнал испускается всякий раз, когда активная стопка испускает QUndoStack::redoTextChanged() или активная стопка меняется.
redoText — новое состояние, или пустая строка, если активная стопка равна 0.
См. также QUndoStack::redoTextChanged() и setActiveStack().
void QUndoGroup::removeStack(QUndoStack *stack)
Удаляет stack из этой группы. Если стопка была активной стопкой в группе, активной стопкой становится 0.
См. также addStack(), stacks() и QUndoStack::~QUndoStack().
[slot] void QUndoGroup::setActiveStack(QUndoStack *stack)
Устанавливает активную стопку этой группы в stack.
Если стопка не является членом этой группы, эта функция ничего не делает.
Синонимично вызову QUndoStack::setActive() для stack.
Действия, возвращаемые createUndoAction() и createRedoAction(), теперь будут вести себя так же, как действия, возвращаемые QUndoStack::createUndoAction() и QUndoStack::createRedoAction() stack.
См. также QUndoStack::setActive() и activeStack().
QList<QUndoStack *> QUndoGroup::stacks() const
Возвращает список стеков в этой группе.
См. также addStack() и removeStack().
[slot] void QUndoGroup::undo()
Вызывает QUndoStack::undo() на активной стопке.
Если ни одна из стопок не активна или группа пуста, эта функция ничего не делает.
См. также redo(), canUndo() и setActiveStack().
QString QUndoGroup::undoText() const
Возвращает значение QUndoStack::undoText() активной стопки.
Если ни одна из стопок не активна или группа пуста, эта функция возвращает пустую строку.
См. также redoText() и setActiveStack().
[signal] void QUndoGroup::undoTextChanged(const QString &undoText)
Этот сигнал испускается всякий раз, когда активная стопка испускает QUndoStack::undoTextChanged() или активная стопка меняется.
undoText — новое состояние, или пустая строка, если активная стопка равна 0.
См. также QUndoStack::undoTextChanged() и setActiveStack().
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/archives/qt-5.6/qundogroup.html