主要内容

为App设计器配置自定义UI组件

从R2021a开始,当您创建自定义UI组件类时,您可以为应用程序创建者配置组件,以便在应用程序设计器中交互使用。配置UI组件后,应用程序创建者可以将该组件添加到组件库并可以与App Designer画布和属性检查器中的组件交互。

控件的子类创建了UI组件类,请遵循以下配置步骤matlab.ui.componentcontainer.ComponentContainer基类,并且您希望以以下任一方式使用它:

  • 从App设计器中访问UI组件组件库并交互式地使用它来创建一个App Designer应用程序。

  • 分享你的UI组件,让其他人在App Designer中交互式地创建应用。

自定义UI组件类先决条件

为了让你的自定义UI组件在App Designer中交互使用,你的UI组件类必须满足一些要求。

要成功配置UI组件,设置方法不能有必需的输入参数。此外,组件类不能动态地将额外的UI组件添加到其父容器中。唯一的例外是类可以动态地添加快捷菜单组件在父图中。

要使组件类的公共属性出现在属性检查器中,必须指定其类型或为其指定默认值。如果属性是枚举,则必须二者都指定它的类型并赋给它一个默认值。此外,属性类型必须属于App Designer支持的类型列表。金宝app该表显示了在属性检查器中允许的属性类型及其外观。

属性分类 金宝app支持的数据类型 属性检查器输入
数值 类型的标量或数组int8int32int64uint8uint16uint32,或uint64 编辑字段
逻辑 逻辑 复选框
文本 标量类型的字符串,类型的标量或行向量字符,以及类型的标量或向量细胞 文本区
枚举 枚举 编辑下拉菜单

有关指定属性类型和分配默认值的详细信息,请参见管理自定义UI组件的属性

创建要配置的UI组件类

创建一个名为MyComponents例如,在一个特定的地点,C: \.复制颜色选择器类定义并使用名称保存它ColorSelector.m在文件夹C: \ MyComponents

classdef颜色选择器% UI组件来选择颜色%公共属性性质价值{validateattributes(价值,...{“双重”},{“< =”,1,' > = ',0,“大小”,[1 3]})}= [1 0 0];结束%的事件事件(HasCallbackProperty, NotifyAccess = protected% ValueChangedFcn将是生成的回调属性结束%私有财产性质(Access = private, Transient, NonCopyable)网格matlab.ui.container.GridLayout按钮matlab.ui.control.ButtonEditFieldmatlab.ui.control.EditField结束方法(访问=受保护)作用设置(obj)用于管理构建块的网格布局obj。= uigridlayout(obj,[1 2],“ColumnWidth”,{“1 x”22},...“RowHeight”,{“健康”},“列间距”,2,“填充”2);%编辑字段值显示和按钮启动uisetcolorobj。EditField = uieditfield (obj。网格,“可编辑”错误的...“HorizontalAlignment”“中心”);obj。按钮= uibutton (obj。网格,“文本”char (9998),...“ButtonPushedFcn”@ (o, e) obj.getColorFromUser ());结束作用更新(obj)%更新编辑字段和按钮的颜色集(obj。EditField obj。按钮),“背景色”obj。值,...“FontColor”obj.getContrastingColor (obj.Value));%更新显示文本obj.EditField.Value = num2str (obj。值,“%0.2g”);结束结束方法(访问=私人)作用getColorFromUser(obj) c = uisetcolor(obj. value);如果(c == 0))返回结束%更新Value属性obj。值= c;%执行用户回调和侦听器通知(obj,“ValueChanged”);结束作用对比色=获取对比色(~,颜色)计算相反颜色C = color * 255;contrastColor = [1 1 1];如果(c(1)*.299+c(2)*.587+c(3)*.114)>186对比度颜色=[0];结束结束结束结束

配置应用设计器元数据

属性配置应用程序设计器中使用的自定义UI组件appdesigner.customcomponent.configureMetadata函数。

通过传递组件类文件的路径来调用函数。该函数打开App Designer自定义UI组件元数据对话框。这个对话框允许您指定关于组件的元数据。应用程序设计器使用此元数据来显示组件库

appdesigner.customcomponent.configureMetadata (“C: \ MyComponents \ ColorSelector.m”);

ColorSelector组件的应用程序设计器自定义组件元数据对话框。

对话框将从组件类定义中预填充所有必需的元数据。您可以使用表单编辑预填充的元数据。选择好啊配置颜色选择器UI组件。

在您选择好啊,函数将创建一个名为资源MyComponents文件夹中。在资源文件夹,函数生成一个名为appDesigner.json.该文件包含您在对话框中提供的元数据,以及MATLAB中的其他元数据®需要让你的组件在App Designer中可用。

请注意

不要修改appDesigner.json文件用手。要更改任何自定义UI组件元数据,请使用appdesigner.customcomponent.configureMetadata函数。

在App设计器中查看配置的UI组件

属性配置自定义UI组件类之后appdesigner.customcomponent.configureMetadata函数,可以在App Designer中查看和使用。让UI组件出现在App设计器中组件库,则必须添加包含类文件和生成的文件夹资源文件夹到MATLAB路径。

例如,使用颜色选择器在应用程序设计器中添加MyComponents文件夹到MATLAB路径的步骤在更改搜索路径上的文件夹这个n, open App Designer by entering应用程序设计器在MATLAB命令行。当它打开时,选择空白应用程序这个颜色选择器控件的底部显示UI组件组件库我的组件部分。

的实例颜色选择器UI组件放到App Designer画布上。注意,属性检查器列出了公共属性价值ValueChangedFcn在UI组件类定义中创建的回调函数。

在App Designer画布上的一个ColorSelector UI组件。UI组件可以通过App Designer组件浏览器进行选择和编辑。

请注意

在App Designer中使用组件时,避免更改UI组件类定义中的公共属性和事件,因为这样做可能会导致错误或意外行为。

重新配置用户界面组件

在以下情况下重新配置先前配置的UI组件类:

  • 您希望更改现有的UI组件元数据,并更新组件在App Designer中的显示方式组件库

  • 您已经更改了类定义中的UI组件位置或布局。

要重新配置UI组件,请调用appdesigner.customcomponent.configureMetadata函数,将其传递到UI组件类文件的路径。该函数打开应用程序设计器自定义组件元数据对话框,并预先填充现有元数据。

appdesigner.customcomponent.configureMetadata (“C: \ MyComponents \ ColorSelector.m”);

通过将类别更改为来更新元数据颜色把作者的名字设为MathWorks,然后选择好啊

在编辑了类别和作者名字段的ColorSelector组件的App Designer自定义组件元数据对话框。

回到App Designer。组件现在出现在颜色部分的组件库.将鼠标悬停在组件上。作者的名字现在出现了。

带有颜色选择器UI组件的应用程序设计器组件库,显示在颜色类别下(附加组件)。鼠标光标指向组件,该组件将显示一条包含组件名称、版本、描述、作者和文件位置的消息。

从应用程序设计器中删除UI组件

要从应用程序设计器中删除自定义UI组件,请使用appdesigner.customcomponent.removeMetadata函数。

通过传递组件类文件的路径来调用函数。函数将UI组件的元数据从appDesigner.json文件在资源文件夹,并从App设计器中删除该组件组件库

appdesigner.customcomponent.removeMetadata (“C: \ MyComponents \ ColorSelector.m”);

移除自定义UI组件的App Designer元数据后,任何使用它的App Designer应用程序都无法正确加载。要继续编辑使用UI组件的应用程序,请使用appdesigner.customcomponent.configureMetadata函数。

共享配置的UI组件

配置完UI组件后,您可以在App Designer中共享该组件供其他人使用。您可以直接共享相关文件,也可以将组件打包为工具箱。在这两种情况下,您还必须共享生成的文件资源文件夹中。

直接共享UI组件文件

要直接与用户共享已配置的UI组件,请创建并共享包含以下内容的文件夹:

  • UI组件类文件

  • 生成的资源文件夹

指导共享UI组件的用户将共享文件夹添加到MATLAB路径中。

将UI组件打包为工具箱

按照下面的步骤将UI组件打包为工具箱创建和共享工具箱.确保你作为工具箱打包的文件夹包含以下内容:

  • UI组件类文件

  • 生成的资源文件夹

你可以分享结果.mltbx文件直接与您的用户。要安装它,他们必须双击.mltbx文件在MATLAB中当前文件夹浏览器。

或者,您可以通过上传.mltbx文件到MATLAB中心文件交换.你的用户可以通过执行以下步骤从MATLAB Toolstrip找到并安装你的插件:

  1. 在MATLAB Toolstrip中,在首页选项卡,在环境部分中,选择附加组件

  2. 通过浏览插件资源管理器窗口左侧的可用类别找到插件。或者,使用搜索栏搜索插件使用关键字。

  3. 单击加载项以打开其详细信息页面。

  4. 在信息页面,单击添加来安装附加组件。

另请参阅

功能

相关话题