本页内容

QActionGroup Class

QActionGroup 类用于将操作分组。更多内容...

标题: #include <QActionGroup>
CMake: 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)

创建并返回一个包含text 和icon 的操作。新创建的操作是该操作组的子操作。

通常,通过将操作创建为该组的子操作来将其添加到组中,因此此函数通常不被使用。

另请参阅 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 为 true 时,它会调用setExclusionPolicy (ExclusionPolicy::Exclusive );否则,则调用setExclusionPolicy (QActionGroup::ExclusionPolicy::None )。

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

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

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

请将此信号连接到命令操作。

另请参阅 QAction::activate()。

© 2026 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.