Класс QActionGroup
Класс QActionGroup группирует действия вместе. Подробнее...
| Заголовок: | #include <QActionGroup> |
| qmake: | QT += widgets |
| Наследуется от: | QObject |
Общие типы
| перечисление | ExclusionPolicy { None, Exclusive, ExclusiveOptional } |
Свойства
- enabled : bool
- exclusionPolicy : QActionGroup::ExclusionPolicy
- visible : bool
Общедоступные функции
| QActionGroup(QObject *parent) | |
| virtual | ~QActionGroup() |
| QList<QAction *> | actions() const |
| QAction * | addAction(QAction *action) |
| QAction * | addAction(const QString &text) |
| QAction * | addAction(const QIcon &icon, const QString &text) |
| QAction * | checkedAction() const |
| QActionGroup::ExclusionPolicy | exclusionPolicy() const |
| bool | isEnabled() const |
| bool | isExclusive() const |
| bool | isVisible() const |
| void | removeAction(QAction *action) |
Открытые слоты
| void | setDisabled(bool b) |
| void | setEnabled(bool) |
| void | setExclusionPolicy(QActionGroup::ExclusionPolicy policy) |
| void | setExclusive(bool b) |
| void | setVisible(bool) |
Сигналы
| void | hovered(QAction *action) |
| void | triggered(QAction *action) |
Подробное описание
В некоторых ситуациях полезно группировать объекты QAction вместе. Например, если у вас есть действие Выравнивание по левому краю, действие Выравнивание по правому краю, действие Выравнивание по ширине и действие Выравнивание по центру, только одно из этих действий должно быть активным в любое время. Один из простых способов достижения этого — сгруппировать действия в группе действий.
Вот пример (из примера Меню):
alignmentGroup = new QActionGroup(this);
alignmentGroup->addAction(leftAlignAct);
alignmentGroup->addAction(rightAlignAct);
alignmentGroup->addAction(justifyAct);
alignmentGroup->addAction(centerAct);
leftAlignAct->setChecked(true); Здесь мы создаем новую группу действий. Поскольку группа действий по умолчанию исключает, только одно из действий в группе может быть выбрано в любой момент.
Группа QActionGroup генерирует сигнал triggered() при выборе одного из ее действий. Каждое действие в группе действий генерирует свой сигнал triggered() как обычно.
Как указано выше, по умолчанию группа действий исключает; она гарантирует, что в любой момент времени активным может быть только одно действие с возможностью выбора. Если вы хотите сгруппировать действия с возможностью выбора без исключения, вы можете отключить исключение, вызвав setExclusive(false).
По умолчанию активное действие исключающей группы нельзя снять с выбора. В некоторых случаях может быть полезно разрешить снятие выбора со всех действий, вы можете разрешить это, вызвав setExclusionPolicy(QActionGroup::ExclusionPolicy::ExclusiveOptional).
Действия можно добавлять в группу действий с помощью addAction(), но обычно удобнее указать группу при создании действий; это гарантирует, что действия автоматически создаются с родительским элементом. Действия можно визуально разделить друг от друга, добавив в группу действие разделителя; создайте действие и используйте функцию QAction's setSeparator() для того, чтобы оно считалось разделителем. Группы действий добавляются в виджеты с помощью функции QWidget::addActions().
См. также QAction.
Документация по типу члена
перечисление QActionGroup::ExclusionPolicy
Это перечисление определяет различные политики, которые могут быть использованы для управления тем, как группа выполняет исключительный выбор по действиям с возможностью выбора.
| Постоянная | Значение | Описание |
|---|---|---|
QActionGroup::ExclusionPolicy::None |
0 |
Действия в группе могут выбираться независимо друг от друга. |
QActionGroup::ExclusionPolicy::Exclusive |
1 |
В любой момент времени может быть выбрано ровно одно действие. Это политика по умолчанию. |
QActionGroup::ExclusionPolicy::ExclusiveOptional |
2 |
В любой момент времени может быть выбрано не более одного действия. Действия также могут быть не выбраны. |
Это перечисление было введено или изменено в Qt 5.14.
См. также exclusionPolicy.
Документация по свойствам
enabled : bool
Это свойство содержит значение, указывающее, включена ли группа действий
Каждое действие в группе будет включено или отключено, если только оно не отключено явно.
Функции доступа:
| bool | isEnabled() const |
| void | setEnabled(bool) |
См. также QAction::setEnabled().
exclusionPolicy : QActionGroup::ExclusionPolicy
Это свойство содержит политику исключительного выбора группы
Если exclusionPolicy задано в Exclusive, только одно действие с возможностью выбора в группе действий может быть активным в любой момент времени. Если пользователь выберет другое действие с возможностью выбора в группе, выбранное им действие станет активным, а то, которое было активным, станет неактивным. Если exclusionPolicy задано в ExclusionOptional, группа исключает, но активное действие с возможностью выбора в группе можно снять с выбора, оставив группу без выбранных действий.
Это свойство было введено в Qt 5.14.
Функции доступа:
| QActionGroup::ExclusionPolicy | exclusionPolicy() const |
| void | setExclusionPolicy(QActionGroup::ExclusionPolicy policy) |
См. также QAction::checkable.
visible : bool
Это свойство содержит значение, указывающее, отображается ли группа действий
Каждое действие в группе действий будет соответствовать состоянию видимости этой группы, если только оно не было скрыто явно.
Функции доступа:
| bool | isVisible() const |
| void | setVisible(bool) |
См. также QAction::setEnabled().
Документация по функции члена
QActionGroup::QActionGroup(QObject *parent)
Создает группу действий для объекта parent.
Группа действий по умолчанию является взаимоисключающей. Вызовите setExclusive(false), чтобы сделать группу действий не взаимоисключающей. Чтобы сделать группу взаимоисключающей, но разрешить снятие отметки с активного действия, вызовите вместо этого setExclusionPolicy(QActionGroup::ExclusionPolicy::ExclusiveOptional)
[signal] void QActionGroup::hovered(QAction *action)
Этот сигнал излучается, когда заданное действие action в группе действий выделяется пользователем; например, когда пользователь зависает курсором над пунктом меню, кнопкой на панели инструментов или нажимает сочетание клавиш действия.
См. также QAction::activate().
[slot] void QActionGroup::setDisabled(bool b)
Это вспомогательная функция для свойства enabled, которая полезна для соединений сигналов-слотов. Если b истинно, группа действий отключена; в противном случае она включена.
[slot] void QActionGroup::setExclusive(bool b)
Включить или отключить проверку исключения группы
Это вспомогательный метод, который вызывает setExclusionPolicy(ExclusionPolicy::Exclusive), когда b истинно, в противном случае setExclusionPolicy(QActionGroup::ExclusionPolicy::None).
См. также isExclusive() и QActionGroup::exclusionPolicy.
[signal] void QActionGroup::triggered(QAction *action)
Этот сигнал излучается, когда заданное действие action в группе действий активируется пользователем; например, когда пользователь щелкает по пункту меню, кнопке на панели инструментов или нажимает сочетание клавиш действия.
Подключитесь к этому сигналу для командных действий.
См. также QAction::activate().
[virtual] QActionGroup::~QActionGroup()
Уничтожает группу действий.
QList<QAction *> QActionGroup::actions() const
Возвращает список действий этой группы. Он может быть пустым.
QAction *QActionGroup::addAction(QAction *action)
Добавляет действие action в эту группу и возвращает его.
Обычно действие добавляется в группу, создавая его с группой в качестве родительского элемента, поэтому эта функция обычно не используется.
См. также QAction::setActionGroup().
QAction *QActionGroup::addAction(const QString &text)
Создаёт и возвращает действие с текстом text. Созданное действие является дочерним элементом этой группы действий.
Обычно действие добавляется в группу, создавая его с группой в качестве родителя, поэтому эта функция обычно не используется.
См. также QAction::setActionGroup().
QAction *QActionGroup::addAction(const QIcon &icon, const QString &text)
Создаёт и возвращает действие с текстом text и иконкой icon. Созданное действие является дочерним элементом этой группы действий.
Обычно действие добавляется в группу, создавая его с группой в качестве родительского элемента, поэтому эта функция обычно не используется.
См. также QAction::setActionGroup().
QAction *QActionGroup::checkedAction() const
Возвращает текущее отмеченное действие в группе или nullptr если нет отмеченных.
bool QActionGroup::isExclusive() const
Возвращает true, если группа взаимоисключающая
Группа является взаимоисключающей, если ExclusionPolicy равен Exclusive или ExclusionOptional.
void QActionGroup::removeAction(QAction *action)
Удаляет действие action из этой группы. Действие не будет иметь родителя в результате.
См. также QAction::setActionGroup().
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-5.15/qactiongroup.html