主要内容

更新

设置后更新UI组件容器子类的实例属性

语法

更新(obj)

描述

更新(obj)更新UI组件的内容在一个或多个公共财产值变化。定义这个方法更新UI组件中底层图形对象使用新属性值。这个方法执行在未来drawnow用户更改后执行一个或多个属性值在UI组件。

输入参数

全部展开

对象的类继承matlab.ui.componentcontainer.ComponentContainer基类。

属性

文摘 真正的
受保护的 真正的

了解属性的方法,请参阅方法属性

例子

全部展开

定义一个类IPAddressComponent创建一个自定义组件输入四值形成一个IP地址。

定义类,创建一个文件IPAddressComponent.m与这些特性包含以下类定义:

  • 一个价值公共财产,商店的IP地址。

  • NumericFieldGridLayout私有财产,四个数字编辑字段在水平行。

  • 一个设置初始化方法NumericFieldGridLayout

  • 一个更新方法,更新NumericField值时,IP地址的变化。

  • 一个handleNewValue方法设置价值财产基于4数字编辑字段的值。

classdefIPAddressComponent < matlab.ui.componentcontainer.ComponentContainer% IPAddressComponent一组4编辑字段输入IP地址属性价值(1、4){mustBeNonnegative、mustBeInteger mustBeLessThanOrEqual(价值255美元)}= (192 168 1 2);结束事件ValueChanged (HasCallbackProperty NotifyAccess =保护)% ValueChangedFcn调属性将生成结束属性(=私人访问,瞬态NonCopyable) NumericField(1、4)matlab.ui.control.NumericEditFieldGridLayoutmatlab.ui.container.GridLayout结束方法(访问=保护)函数设置(obj)%设置该组件的初始位置obj。位置= (100 100 150 22);%的布局obj。GridLayout = uigridlayout (obj, (1、5),“RowHeight”{22},“ColumnWidth”{30日,30日,30日,30日,22},“填充”0,“列空间”2);%的构建块k = 1:4 obj.NumericField (k) = uieditfield (obj.GridLayout,“数字”,“限制”255年[0],“RoundFractionalValues”,真的,“字体名”,“快递新”,“FontWeight”,“大胆”,“ValueChangedFcn”@ (o, e) obj.handleNewValue ());结束结束函数更新(obj)%更新视图k = 1:4 obj.NumericField (k)。值= obj.Value (k);结束结束结束方法(访问=私人)函数handleNewValue (obj) obj。价值= [obj.NumericField.Value];%执行事件监听器和ValueChangedFcn调属性通知(obj,“ValueChanged”);结束结束结束

接下来,创建组件通过调用IPAddressComponent构造函数方法,它提供的ComponentContainer类,并返回对象h。指定一个函数显示新的IP地址在命令窗口组件值变化。

h = IPAddressComponent;h。ValueChangedFcn = @ (o, e) disp ([的值更改为:“num2str (h.Value)]);

输入的IP地址192.168.1.10进入编辑字段。MATLAB®命令窗口显示更新的IP地址。

提示

  • 不叫drawnow设置更新UI组件类的方法。这样的调用会导致意想不到的屏幕更新应用程序使用UI组件。相反,依赖于应用程序的开发者(使用您的组件)来调用drawnow在他们的应用程序代码时需要触发屏幕更新。这些调用外部组件代码更新所有UI组件的应用程序,包括那些使用创建的ComponentContainer类。

版本历史

介绍了R2020b