Spec-Zone.ru › Qt 5.15

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

Spec-Zone.ru

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