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 } |
属性
- 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) |
信号
详细说明
QActionGroup 是一个基类,用于将继承QAction 对象的类分组在一起。
在某些情况下,将QAction 对象分组是非常有用的。例如,如果您有一个Left Align 动作、一个Right Align 动作、一个Justify 动作和一个Center 动作,在任何时候这些动作中只有一个处于活动状态。实现这一点的一个简单方法是将这些操作组合到一个继承于 QActionGroup 的操作组中。
另请参阅 QAction 。
成员类型文档
enum class QActionGroup::ExclusionPolicy
该枚举指定了不同的策略,可用于控制组如何对可检查操作执行排他性检查。
常量 | 值 | 说明 |
---|---|---|
QActionGroup::ExclusionPolicy::None | 0 | 组中的操作可以相互独立检查。 |
QActionGroup::ExclusionPolicy::Exclusive | 1 | 任何时候都只能检查一个操作。这是默认策略。 |
QActionGroup::ExclusionPolicy::ExclusiveOptional | 2 | 每次最多只能选中一个操作。这些操作也可以全部取消选中。 |
另请参阅 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 为真时调用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.