ActionContainer 类
class Core::ActionContainer操作容器类表示 Qt Creator 中的一个菜单或菜单栏。 更多信息...
头文件 | #include <coreplugin/actionmanager/actioncontainer.h> |
继承 | QObject |
公共类型
枚举 | OnAllDisabledBehavior { Disable, Hide, Show } |
公共函数
virtual void | addAction(Core::Command *action, Utils::Id group = Id()) = 0 |
virtual void | addMenu(Core::ActionContainer *menu, Utils::Id group = Utils::Id()) = 0 |
virtual void | addMenu(Core::ActionContainer *before, Core::ActionContainer *menu) = 0 |
Core::Command * | addSeparator(Utils::Id group = {}) |
virtual Core::Command * | addSeparator(const Core::Context &context, Utils::Id group = {}, QAction **outSeparator = nullptr) = 0 |
virtual void | appendGroup(Utils::Id group) = 0 |
virtual void | clear() = 0 |
virtual void | insertGroup(Utils::Id before, Utils::Id group) = 0 |
virtual QAction * | insertLocation(Utils::Id group) const = 0 |
virtual QMenu * | menu() const = 0 |
virtual QMenuBar * | menuBar() const = 0 |
virtual Core::ActionContainer::OnAllDisabledBehavior | onAllDisabledBehavior() const = 0 |
virtual void | setOnAllDisabledBehavior(Core::ActionContainer::OnAllDisabledBehavior behavior) = 0 |
virtual Utils::TouchBar * | touchBar() const = 0 |
详细说明
您不直接创建此类实例,而是使用 ActionManager::createMenu(),ActionManager::createMenuBar() 和 ActionManager::createTouchBar() 函数。使用 ActionManager::actionContainer() 获取具有 ID 的现有操作容器。
在菜单或菜单栏中,您可以通过定义组(组的顺序由 ActionContainer::appendGroup() 调用的顺序定义)将菜单和项分组在一起,并将菜单或操作添加到这些组中。如果没有定义自定义组,操作容器有三个默认组 Core::Constants::G_DEFAULT_ONE
,Core::Constants::G_DEFAULT_TWO
和 Core::Constants::G_DEFAULT_THREE
。
您可以通过设置相应的 setOnAllDisabledBehavior() 来指定此操作容器表示的菜单是否应该自动禁用或隐藏,当它仅包含禁用项和子菜单时。默认情况下,对于菜单,为 ActionContainer::Disable,对于菜单栏,为 ActionContainer::Show。
成员类型文档
enum ActionContainer::OnAllDisabledBehavior
定义了当表示的菜单为空或仅包含禁用或不可见的项目时会发生什么。
常量 | 值 | 描述 |
---|---|---|
Core::ActionContainer::Disable | 0 | 菜单将可见但已禁用。 |
Core::ActionContainer::Hide | 1 | 菜单将在子项状态改变之前不可见。 |
Core::ActionContainer::Show | 2 | 菜单将仍然可见并活跃。 |
成员函数文档
[纯虚函数]
void ActionContainer::addAction(Core::Command *action, Utils::Id group = Id())
将action作为菜单项添加到这个动作容器中。动作作为指定group的最后一个项目添加。
另请参阅 appendGroup() 和 addMenu().
[纯虚函数]
void ActionContainer::addMenu(Core::ActionContainer *menu, Utils::Id group = Utils::Id())
将menu作为子菜单添加到这个动作容器中。菜单作为指定group的最后一个项目添加。
另请参阅 appendGroup() 和 addAction().
[纯虚函数]
void ActionContainer::addMenu(Core::ActionContainer *before, Core::ActionContainer *menu)
将menu作为子菜单添加到这个动作容器中,在指定before的菜单之前。
另请参阅 appendGroup() 和 addAction().
Core::Command *ActionContainer::addSeparator(Utils::Id group = {})
将分隔符添加到group的动作容器的末尾。
返回创建的分隔符。
[纯虚函数]
void ActionContainer::addSeparator(const Core::Context &context, Utils::Id group = {}, QAction **outSeparator = nullptr)
在给定context的情况下,将分隔符添加到给定group的动作容器的末尾,该分隔符被启用。返回创建的分隔符动作,outSeparator。
[纯虚函数]
void ActionContainer::appendGroup(Utils::Id group)
将group添加到动作容器中。
使用分组将动作容器划分为逻辑部分。您可以直接在分组中添加动作和菜单。
[纯虚函数]
void ActionContainer::clear()
清除此菜单及其子菜单的所有操作和子菜单。但是,它不会销毁子菜单和命令,只是将它们从父级中删除。
[纯虚函数]
void ActionContainer::insertGroup(Utils::Id before, Utils::Id group)
在指定由 before 指定的 group 的之前,将 group 插入到操作容器中。
[纯虚函数]
QAction *ActionContainer::insertLocation(Utils::Id group) const
返回代表 group 的操作,可用于 QWidget::insertAction
。
[纯虚函数]
QMenu *ActionContainer::menu() const
返回由此操作容器表示的 QMenu 实例,或者如果此操作容器表示菜单栏则为 0。
[纯虚函数]
QMenuBar *ActionContainer::menuBar() const
返回由此操作容器表示的 QMenuBar 实例,如果此操作容器表示菜单则为 0。
[纯虚函数]
Core::ActionContainer::OnAllDisabledBehavior ActionContainer::onAllDisabledBehavior() const
返回此操作容器表示的菜单在仅包含禁用项和子菜单时的行为。对于菜单默认为 ActionContainer::Disable,对于菜单栏默认为 ActionContainer::Show。
另请参阅OnAllDisabledBehavior 和 setOnAllDisabledBehavior。
[纯虚函数]
void ActionContainer::setOnAllDisabledBehavior(Core::ActionContainer::OnAllDisabledBehavior behavior)
定义此操作容器表示的菜单在仅包含禁用项和子菜单时的行为。对于菜单默认为 ActionContainer::Disable,对于菜单栏默认为 ActionContainer::Show。
另请参阅ActionContainer::OnAllDisabledBehavior 和 ActionContainer::onAllDisabledBehavior。
[纯虚函数]
Utils::TouchBar *ActionContainer::touchBar() const
返回由此操作容器表示的触摸栏。
©2024 The Qt Company Ltd. 本文档中包含的贡献是各自所有者的版权所有。本提供的文档根据 Free Software Foundation 发布的 GNU 自由文档许可协议版本 1.3 的条款进行许可。Qt 及相关商标是芬兰的 The Qt Company Ltd 以及其他国家和地区的商标。所有其他商标均为其各自所有者的财产。