主要内容

matlab.ui.componentcontainer.ComponentContainer类

包:matlab.ui.componentcontainer

用于开发UI组件对象的基类

描述

matlab.ui.componentcontainer.ComponentContainer是一个你用来创建你自己的UI Component对象类的类。类定义此基类的子类时,可以使用ComponentContainer属性和方法来构建你的UI组件对象。类定义文件的第一行指定此语法,以便直接继承ComponentContainer类,MyComponent对象的名称:

classdef MyComponent < matlab.ui.componentcontainer.ComponentContainer

matlab.ui.componentcontainer.ComponentContainer类是一个处理类。

类属性

摘要
真正的
ConstructOnLoad
真正的
HandleCompatible
真正的

有关类属性的信息,请参见类属性

属性

全部展开

颜色和样式

背景色,指定为RGB三元组、十六进制颜色代码或表中列出的颜色选项之一。

RGB三组和十六进制颜色代码对于指定自定义颜色很有用。

  • RGB三元组是一个三元素行向量,其元素指定颜色的红、绿和蓝分量的强度。强度必须在这个范围内[0, 1];例如,[0.4 0.6 0.7]

  • 十六进制颜色码是字符向量或以散列符号()后面跟着三个或六个十六进制数字,取值范围为0F.这些值不区分大小写。因此,颜色代码“# FF8800”“# ff8800”“# F80”,“# f80”是等价的。

或者,您可以通过名称指定一些常用颜色。该表列出了已命名的颜色选项、等效的RGB三元组和十六进制颜色代码。

颜色名称 短名称 RGB值 十六进制颜色代码 外观
“红色” “r” [10 0 0] “# FF0000”

“绿色” ‘g’ [0 10 0] “# 00 ff00”

“蓝” “b” [0 0 1] “# 0000 ff”

“青色” “c” [0 1 1] “# 00飞行符”

“红色” “米” [10 0 1] “#就”

“黄色” “y” [11 10 0] “# FFFF00”

“黑” “k” [0 0 0] # 000000的

“白色” ' w ' [1 1 1] “# FFFFFF”

这里是RGB三组和十六进制的颜色代码的默认颜色MATLAB®在许多类型的图中使用。

RGB值 十六进制颜色代码 外观
[0 0.4470 0.7410] “# 0072 bd”

[0.8500 0.3250 0.0980] “# D95319”

[0.9290 0.6940 0.1250] “# EDB120”

[0.4940 0.1840 0.5560] “# 7 e2f8e”

[0.4660 0.6740 0.1880] “# 77 ac30”

[0.3010 0.7450 0.9330] “# 4 dbeee”

[0.6350 0.0780 0.1840] “# A2142F”

属性:

GetAccess
公共
SetAccess
公共
依赖
真正的
GetObservable
真正的
SetObservable
真正的
交互性

可见状态,指定为“上”“关闭”,或作为数字或逻辑1真正的)或0).值为“上”等于真正的,“关闭”等于.因此,您可以将此属性的值用作逻辑值。该值存储为类型的on/off逻辑值matlab.lang.OnOffSwitchState

  • “上”—显示对象。

  • “关闭”—隐藏对象,但不删除对象。您仍然可以访问不可见UI组件的属性。

要使应用程序启动更快,请设置可见财产“关闭”用于启动时不需要出现的所有组件。

更改不可见容器的大小会触发SizeChangedFcn当它变得可见时回调。

改变了可见属性的值可见子组件的属性。即使隐藏容器会导致隐藏子组件,情况也是如此。

属性:

GetAccess
公共
SetAccess
公共
依赖
真正的
GetObservable
真正的
SetObservable
真正的

上下文菜单,指定为快捷菜单对象创建。uicontextmenu函数。使用此属性可在右键单击组件时显示上下文菜单。

属性:

GetAccess
公共
SetAccess
公共
NonCopyable
真正的
瞬态
真正的
GetObservable
真正的
SetObservable
真正的
位置

UI组件的大小和位置,不包括轴标签和标记等装饰的边缘。将此属性指定为形式向量[左下宽高]

请注意

当UI组件的父组件是GridLayout

属性:

GetAccess
公共
SetAccess
公共
依赖
真正的

计量单位,指定为“像素”

属性:

GetAccess
公共
SetAccess
公共
依赖
真正的
GetObservable
真正的
SetObservable
真正的

布局选项,指定为GridLayoutOptions对象。此属性指定网格布局容器的子组件的选项。如果组件不是网格布局容器的子组件(例如,它是图形或面板的子组件),则此属性为空,没有作用。但是,如果组件是网格布局容器的子元素,则可以将组件放置在网格的所需行和列中而且属性GridLayoutOptions对象。

例如,这段代码将图像组件放在其父网格的第三行和第二列中。

G = uigridlayout([4 3]);Im = uiimage(g);即时通讯。ImageSource =“peppers.png”;即时通讯。ScaleMethod =“填满”;im.Layout.Row = 3;im.Layout.Column = 2;

要使图像跨越多行或多列,请指定属性作为两元素向量。例如,这个图像跨列2通过3.

im.Layout.Column = [2 3];

属性:

GetAccess
公共
SetAccess
公共
回调执行控制

回调中断,指定为“上”“关闭”,或作为数字或逻辑1真正的)或0).值为“上”等于真正的,“关闭”等于.因此,您可以将此属性的值用作逻辑值。该值存储为类型的on/off逻辑值matlab.lang.OnOffSwitchState

此属性决定是否可以中断正在运行的回调。有两种回调状态需要考虑:

  • 运行Callback是当前正在执行的Callback。

  • 打断回调是试图中断正在运行的回调的回调。

每当MATLAB调用回调时,该回调都会试图中断正在运行的回调(如果存在的话)。的可中断属性决定是否允许中断。

  • 值为“上”允许其他回调中断对象的回调。中断发生在MATLAB处理队列的下一个点,例如当存在drawnow数字uifiguregetframe等待,或暂停命令。

    • 如果正在运行的回调包含这些命令之一,那么MATLAB将在该点停止回调的执行并执行中断回调。当中断回调完成时,MATLAB恢复执行正在运行的回调。

    • 如果正在运行的回调不包含这些命令之一,那么MATLAB将不间断地完成回调的执行。

  • 值为“关闭”阻塞所有的中断尝试。的BusyAction拥有中断回调的对象的属性决定中断回调是被丢弃还是放入队列。

请注意

回调中断和执行在以下情况下表现不同:

  • 如果中断回调是DeleteFcnCloseRequestFcnSizeChangedFcn回调函数时,中断发生,而不管可中断属性值。

  • 方法当前正在执行等待函数,则中断发生而不管可中断属性值。

  • 计时器对象根据调度执行,而不管可中断属性值。

当中断发生时,MATLAB不保存属性的状态或显示。方法返回的对象gcagcf命令可能在执行另一个回调时更改。

属性:

GetAccess
公共
SetAccess
公共
GetObservable
真正的
SetObservable
真正的

回调队列,指定为“队列”“取消”.的BusyAction属性决定MATLAB如何处理中断回调的执行。有两种回调状态需要考虑:

  • 运行Callback是当前正在执行的Callback。

  • 打断回调是试图中断正在运行的回调的回调。

每当MATLAB调用回调时,该回调都会试图中断正在运行的回调。的可中断属性决定是否允许中断。如果不允许中断,则BusyAction拥有中断回调的对象的属性确定它是被丢弃还是放入队列中。的可能值BusyAction属性:

  • “队列”—将中断的回调放到队列中,待正在运行的回调执行完成后再处理。

  • “取消”—不执行中断回调。

属性:

GetAccess
公共
SetAccess
公共
GetObservable
真正的
SetObservable
真正的

删除状态,作为类型的on/off逻辑值返回matlab.lang.OnOffSwitchState

MATLAB设置BeingDeleted财产“上”DeleteFcn回调开始执行。的BeingDeleted属性仍然设置为“上”直到组件对象不再存在。

的值BeingDeleted属性在查询或修改对象之前验证对象是否即将被删除。

属性:

GetAccess
公共
SetAccess
受保护的
GetObservable
真正的
SetObservable
真正的
父/子

组件的父容器,指定为数字面板选项卡,或GridLayout对象。

属性:

GetAccess
公共
SetAccess
公共
瞬态
真正的
依赖
真正的
NonCopyable
真正的
GetObservable
真正的
SetObservable
真正的

UI组件的子组件,返回为空GraphicsPlaceholder数组中。自定义UI组件没有子组件。设置此属性无效。

属性:

GetAccess
公共
SetAccess
公共
瞬态
真正的
依赖
真正的
NonCopyable
真正的

对象句柄的可见性,指定为“上”“回调”,或“关闭”

此属性控制对象在其父对象的子列表中的可见性。当一个对象在其父对象的子列表中不可见时,通过搜索对象层次结构或查询属性获取对象的函数将不会返回该对象。这些函数包括得到findobjclf,关闭.对象即使不可见也是有效的。如果可以访问对象,就可以设置和获取其属性,并将其传递给对对象进行操作的任何函数。

HandleVisibility价值 描述
“上” 对象总是可见的。
“回调” 对象在回调或回调调用的函数中可见,但在从命令行调用的函数中不可见。此选项阻止在命令行访问对象,但允许回调函数访问它。
“关闭” 这个物体在任何时候都是看不见的。此选项对于防止另一个函数对UI的意外更改非常有用。设置HandleVisibility“关闭”在函数执行期间暂时隐藏对象。

属性:

GetAccess
公共
SetAccess
公共
依赖
真正的
GetObservable
真正的
SetObservable
真正的
标识符

UI组件对象的类型,返回为包含组件名称的字符向量。

属性:

GetAccess
公共
SetAccess
受保护的
NonCopyable
真正的
瞬态
真正的

对象标识符,指定为字符向量或字符串标量。您可以指定一个惟一的标签值作为对象的标识符。方法在代码中的其他地方需要访问对象时,可以使用findobj方法搜索对象标签价值。

属性:

GetAccess
公共
SetAccess
公共
依赖
真正的
GetObservable
真正的
SetObservable
真正的

用户数据,指定为任意MATLAB数组。例如,您可以指定标量、向量、矩阵、单元格数组、字符数组、表或结构。使用此属性可在对象上存储任意数据。

如果您在应用程序设计器中工作,请在应用程序中创建公共或私有属性以共享数据,而不是使用用户数据财产。有关更多信息,请参见在应用设计器应用中共享数据

属性:

GetAccess
公共
SetAccess
公共
瞬态
真正的
GetObservable
真正的
SetObservable
真正的

方法

全部展开

例子

全部折叠

定义一个类IPAddressComponent它创建了一个自定义组件,用于输入四个值来形成一个IP地址。

要定义类,创建一个名为IPAddressComponent.m包含以下具有以下特性的类定义:

  • 一个价值存储IP地址的public属性。

  • NumericField而且GridLayout在水平行中放置四个数字编辑字段的私有属性。

  • 一个设置初始化的方法NumericField而且GridLayout

  • 一个更新方法,该方法更新NumericField的值。

  • 一个handleNewValue方法,用于设置价值属性根据4个数字编辑字段的值设置。

classdefIPAddressComponent < matlab.ui.componentcontainer.ComponentContainerIPAddressComponent为IP地址输入设置4个编辑字段属性价值(1,4) {mustBeNonnegative, mustBeInteger, mustBeLessThanOrEqual(Value, 255)}= [192 168 1 2];结束事件ValueChanged . (HasCallbackProperty, NotifyAccess = protected% ValueChangedFcn回调属性将被生成结束属性(Access = private, Transient, 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);%积木obj. numericfield (k) = uieditfield(obj. numericfield (k))GridLayout,“数字”...“限制”, [0 255],“RoundFractionalValues”,真的,...“字体名”“快递新”“FontWeight”“大胆”...“ValueChangedFcn”@ (o, e) obj.handleNewValue ());结束结束函数更新(obj)%更新视图k = 1:4 obj.NumericField(k)。Value = 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地址。

更多关于

全部展开

R2020b中介绍