QActionGroup Class

QActionGroup 类将动作分组。更多

Header: #include <QActionGroup>
CMake.QActionGroup find_package(Qt6 REQUIRED COMPONENTS Gui)
target_link_libraries(mytarget PRIVATE Qt6::Gui)
qmake: QT += gui
Qt 6.0
继承: QObject

公共类型

enum class ExclusionPolicy { None, Exclusive, ExclusiveOptional }

属性

公共功能

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)

详细说明

QActionGroup 是一个基类,用于将继承QAction 对象的类分组在一起。

在某些情况下,将QAction 对象分组是非常有用的。例如,如果您有一个Left Align 动作、一个Right Align 动作、一个Justify 动作和一个Center 动作,在任何时候这些动作中只有一个处于活动状态。实现这一点的一个简单方法是将这些操作组合到一个继承于 QActionGroup 的操作组中。

另请参阅 QAction

成员类型文档

enum class QActionGroup::ExclusionPolicy

该枚举指定了不同的策略,可用于控制组如何对可检查操作执行排他性检查。

常量说明
QActionGroup::ExclusionPolicy::None0组中的操作可以相互独立检查。
QActionGroup::ExclusionPolicy::Exclusive1任何时候都只能检查一个操作。这是默认策略。
QActionGroup::ExclusionPolicy::ExclusiveOptional2每次最多只能选中一个操作。这些操作也可以全部取消选中。

另请参阅 exclusionPolicy

属性文档

enabled : bool

该属性表示该操作组是否已启用

除非已明确禁用,否则组中的每个操作都将启用或禁用。

访问功能:

bool isEnabled() const
void setEnabled(bool)

另请参阅 QAction::setEnabled().

exclusionPolicy : QActionGroup::ExclusionPolicy

此属性表示组的排他性检查策略

如果 exclusionPolicy 设置为 Exclusive,则在任何时候,动作组中只能有一个可选中的动作处于活动状态。如果用户选择了该组中的另一个可选中的操作,他们选择的那个操作就会变成激活状态,而原来激活的那个操作就会变成非激活状态。如果 exclusionPolicy 设置为 ExclusionOptional,则该组具有排他性,但可以取消选中该组中的活动可选中操作,使该组中没有任何操作被选中。

访问功能:

QActionGroup::ExclusionPolicy exclusionPolicy() const
void setExclusionPolicy(QActionGroup::ExclusionPolicy policy)

另请参阅 QAction::checkable

visible : bool

该属性表示动作组是否可见

除非已明确隐藏,否则动作组中的每个动作都将与该组的可见状态相匹配。

访问功能:

bool isVisible() const
void setVisible(bool)

另请参阅 QAction::setEnabled().

成员函数文档

[explicit] QActionGroup::QActionGroup(QObject *parent)

parent 对象构建一个操作组。

默认情况下,该操作组是排他性的。调用setExclusive(false) 可使动作组成为非排他性的。要使操作组具有排他性,但允许取消选中活动操作,请调用setExclusionPolicy(QActionGroup::ExclusionPolicy::ExclusiveOptional)

[virtual noexcept] 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)

创建并返回一个带有texticon 的操作。新创建的操作是该操作组的子操作。

通常情况下,一个动作是以该组为父对象创建的,因此通常不会使用此函数。

另请参阅 QAction::setActionGroup() 。

QAction *QActionGroup::checkedAction() const

返回组中当前选中的操作,如果没有选中,则返回nullptr

[signal] void QActionGroup::hovered(QAction *action)

当用户高亮显示操作组中给定的action 时,例如,当用户将光标停留在菜单选项或工具栏按钮上,或按下操作的快捷组合键时,就会发出该信号。

另请参阅 QAction::activate() 。

bool QActionGroup::isExclusive() const

如果组是排他性的,则返回 true

如果ExclusionPolicy 是 Exclusive 或 ExclusionOptional,则组是排他的。

void QActionGroup::removeAction(QAction *action)

从该组中删除action 。该操作将没有父节点。

另请参阅 QAction::setActionGroup().

[slot] void QActionGroup::setDisabled(bool b)

这是enabled 属性的方便函数,对信号槽连接非常有用。如果b 为 true,则禁用操作组;否则启用操作组。

[slot] void QActionGroup::setExclusive(bool b)

启用或禁用组排除检查

这是一个方便使用的方法,当b 为真时调用setExclusionPolicy(ExclusionPolicy::Exclusive) ,否则调用setExclusionPolicy(QActionGroup::ExclusionPolicy::None) 。

另请参阅 isExclusive() 和QActionGroup::exclusionPolicy

[signal] void QActionGroup::triggered(QAction *action)

当用户激活操作组中给定的action 时(例如,当用户点击菜单选项或工具栏按钮,或按下操作的快捷组合键时),就会发出该信号。

命令操作会连接到该信号。

另请参阅 QAction::activate() 。

© 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.