Spec-Zone.ru › Qt 5.14

Класс 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);

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

Alignment options in a QMenu

Группа QActionGroup излучает сигнал triggered() при выборе одного из её действий. Каждое действие в группе действий излучает свой сигнал triggered() как обычно.

Как указано выше, группа действий по умолчанию является исключительной; она гарантирует, что в любой момент времени активным может быть не более одного флажкового действия. Если вы хотите сгруппировать флажковые действия, не делая их исключительными, вы можете отключить исключительность, вызвав setExclusive(false).

По умолчанию активное действие исключительной группы не может быть снято с выбора. В некоторых случаях может быть полезно разрешить снятие с выбора всех действий, вы можете разрешить это, вызвав setExclusionPolicy(QActionGroup::ExclusionPolicy::ExclusiveOptional).

Действия можно добавлять в группу действий с помощью addAction(), но обычно удобнее указать группу при создании действий; это гарантирует, что действия автоматически создаются с родителем. Действия можно визуально разделить друг от друга, добавив действие разделителя в группу; создайте действие и используйте функцию QAction's setSeparator() для того, чтобы оно считалось разделителем. Группы действий добавляются в виджеты с помощью функции QWidget::addActions().

См. также QAction.

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

перечисление QActionGroup::ExclusionPolicy

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

Константа Значение Описание
QActionGroup::None 0 Действия в группе могут выбираться независимо друг от друга.
QActionGroup::Exclusive 1 В любой момент времени может быть выбрано ровно одно действие. Это политика по умолчанию.
QActionGroup::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.14/qactiongroup.html

Spec-Zone.ru

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