IMode 类

class Core::IMode

IMode 类表示 Qt Creator 中的一个模式。 更多...

头文件 #include <coreplugin/imode.h>
继承自 Core::IContext
被继承自

Core::DesignMode

属性

公共函数

IMode(QObject *parent = nullptr)
QStringdisplayName() const
QIconicon() const
Utils::Idid() const
boolisEnabled() const
QMenu *menu() const
intpriority() const
voidsetDisplayName(const QString &displayName)
voidsetEnabled(bool enabled)
voidsetIcon(const QIcon &icon)
voidsetId(Utils::Id id)
voidsetMenu(QMenu *menu)
voidsetPriority(int priority)

信号

voidenabledStateChanged(bool enabled)

详细描述

此类定义了一个模式和它在 Qt Creator 主窗口左侧模式选择器中的工具按钮形式的表示。

模式用于显示不同的用户界面以适应不同的开发任务。因此,模式控制了 Qt Creator 主窗口大多数部分的布局,除了左侧的工具栏和状态栏。例如,编辑模式,最常用的编码模式,显示代码编辑器和各种导航和输出面板。调试模式通过可配置的调试相关信息布局增强了那种视图。设计模式保留了主窗口的所有空间用于图形编辑器。

模式是一个 IContext。设置上下文的 widget 以定义模式布局。

添加模式应该是谨慎的,只作为最后的备用方案。考虑如果您的功能可以作为一个 INavigationWidgetFactoryIOutputPaneDebugger::Utils::Perspective、单独的对话框或专门的 IEditor 来实现。

如果您添加了一个模式,请考虑在模式的布局左侧添加一个 NavigationWidgetPlaceHolder,并在底部添加一个 OutputPanePlaceHolder。

模式在创建时自动注册到 Qt Creator,并在销毁时自动取消注册。

属性文档

displayName : QString

该属性持有关模式的显示名称。

显示名称会在模式选择器中的模式图标下显示。

访问函数

QStringdisplayName() const
voidsetDisplayName(const QString &displayName)

enabled : bool

该属性表示模式是否启用。

默认情况下,此属性为 true

访问函数

boolisEnabled() const
voidsetEnabled(bool enabled)

通知信号

voidenabledStateChanged(bool enabled)

icon : QIcon

该属性持有关模式的图标。

图标会在模式选择器中的模式旁显示。模式图标应支持 34x34 像素和 68x68 像素的尺寸以支持 HiDPI。

访问函数

QIconicon() const
voidsetIcon(const QIcon &icon)

id : Utils::Id

该属性持有关模式的 ID。

访问函数

Utils::Idid() const
voidsetId(Utils::Id id)

该属性持有关模式的菜单。

默认情况下,模式没有菜单。当您设置菜单时,除非您显式设置父元素,否则菜单不属于模式。

访问函数

QMenu *menu() const
voidsetMenu(QMenu *menu)

priority : int

该属性持有关模式的优先级。

优先级定义了模式在模式选择器中显示的顺序。较高的优先级将模式移动到顶部。欢迎模式应该保持顶部,其优先级为 100。默认优先级为 -1。

访问函数

intpriority() const
voidsetPriority(int priority)

成员函数文档

IMode::IMode(QObject *parent = nullptr)

创建一个带有可选父元素的 IMode 对象。

在 Qt Creator 中注册模式。

©2024 The Qt Company Ltd. 包含在内的文档贡献是各自所有者的版权。此文档提供受 GNU 自由文档许可证版本 1.3 的条款许可,由自由软件基金会发布。Qt 及其 respective logos 均为 The Qt Company Ltd 在芬兰和/或其他国家的商标。所有其他商标均为其各自所有者的财产。