从R2021a开始,当您创建自定义UI组件类时,您可以为应用程序创建者配置组件,以便在应用程序设计器中交互使用。配置UI组件后,应用程序创建者可以将该组件添加到组件库并可以与App Designer画布和属性检查器中的组件交互。
控件的子类创建了UI组件类,请遵循以下配置步骤matlab.ui.componentcontainer.ComponentContainer
基类,并且您希望以以下任一方式使用它:
从App设计器中访问UI组件组件库并交互式地使用它来创建一个App Designer应用程序。
分享你的UI组件,让其他人在App Designer中交互式地创建应用。
为了让你的自定义UI组件在App Designer中交互使用,你的UI组件类必须满足一些要求。
要成功配置UI组件,设置
方法不能有必需的输入参数。此外,组件类不能动态地将额外的UI组件添加到其父容器中。唯一的例外是类可以动态地添加快捷菜单
组件在父图中。
要使组件类的公共属性出现在属性检查器中,必须指定其类型或为其指定默认值。如果属性是枚举,则必须二者都指定它的类型并赋给它一个默认值。此外,属性类型必须属于App Designer支持的类型列表。金宝app该表显示了在属性检查器中允许的属性类型及其外观。
属性分类 | 金宝app支持的数据类型 | 属性检查器输入 |
---|---|---|
数值 | 类型的标量或数组单 ,双 ,int8 ,int32 ,int64 ,uint8 ,uint16 ,uint32 ,或uint64 |
编辑字段 |
逻辑 | 逻辑 |
复选框 |
文本 | 标量类型的字符串 ,类型的标量或行向量字符 ,以及类型的标量或向量细胞 |
文本区 |
枚举 | 枚举 |
编辑下拉菜单 |
有关指定属性类型和分配默认值的详细信息,请参见管理自定义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”);
对话框将从组件类定义中预填充所有必需的元数据。您可以使用表单编辑预填充的元数据。选择好啊配置颜色选择器
UI组件。
在您选择好啊,函数将创建一个名为资源
在MyComponents
文件夹中。在资源
文件夹,函数生成一个名为appDesigner.json
.该文件包含您在对话框中提供的元数据,以及MATLAB中的其他元数据®需要让你的组件在App Designer中可用。
请注意
不要修改appDesigner.json
文件用手。要更改任何自定义UI组件元数据,请使用appdesigner.customcomponent.configureMetadata
函数。
属性配置自定义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中使用组件时,避免更改UI组件类定义中的公共属性和事件,因为这样做可能会导致错误或意外行为。
在以下情况下重新配置先前配置的UI组件类:
您希望更改现有的UI组件元数据,并更新组件在App Designer中的显示方式组件库.
您已经更改了类定义中的UI组件位置或布局。
要重新配置UI组件,请调用appdesigner.customcomponent.configureMetadata
函数,将其传递到UI组件类文件的路径。该函数打开应用程序设计器自定义组件元数据对话框,并预先填充现有元数据。
appdesigner.customcomponent.configureMetadata (“C: \ MyComponents \ ColorSelector.m”);
通过将类别更改为来更新元数据颜色
把作者的名字设为MathWorks
,然后选择好啊.
回到App Designer。组件现在出现在颜色部分的组件库.将鼠标悬停在组件上。作者的名字现在出现了。
要从应用程序设计器中删除自定义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组件后,您可以在App Designer中共享该组件供其他人使用。您可以直接共享相关文件,也可以将组件打包为工具箱。在这两种情况下,您还必须共享生成的文件资源
文件夹中。
要直接与用户共享已配置的UI组件,请创建并共享包含以下内容的文件夹:
UI组件类文件
生成的资源
文件夹
指导共享UI组件的用户将共享文件夹添加到MATLAB路径中。
按照下面的步骤将UI组件打包为工具箱创建和共享工具箱.确保你作为工具箱打包的文件夹包含以下内容:
UI组件类文件
生成的资源
文件夹
你可以分享结果.mltbx
文件直接与您的用户。要安装它,他们必须双击.mltbx
文件在MATLAB中当前文件夹浏览器。
或者,您可以通过上传.mltbx
文件到MATLAB中心文件交换.你的用户可以通过执行以下步骤从MATLAB Toolstrip找到并安装你的插件:
在MATLAB Toolstrip中,在首页选项卡,在环境部分中,选择附加组件.
通过浏览插件资源管理器窗口左侧的可用类别找到插件。或者,使用搜索栏搜索插件使用关键字。
单击加载项以打开其详细信息页面。
在信息页面,单击添加来安装附加组件。