matlab.ui.componentcontainer.ComponentContainer类
包:matlab.ui.componentcontainer
描述
matlab.ui.componentcontainer.ComponentContainer
是一个类你构建自己的定制的UI组件对象的类。当你定义基类的子类,可以使用ComponentContainer
属性和方法来构建UI组件对象。在第一行指定该语法的直接继承类定义文件ComponentContainer
类,MyComponent
是你的名字对象:
MyComponent classdef添加< matlab.ui.componentcontainer.ComponentContainer
的matlab.ui.componentcontainer.ComponentContainer
类是一个处理
类。
属性
写成BackgroundColor
- - - - - -背景颜色
(0.94 0.94 0.94)
(默认)|RGB值|十六进制颜色代码|“r”
|‘g’
|“b”
|……
背景颜色,作为一个RGB值,指定十六进制的颜色代码,或者颜色表中列出的选项之一。
RGB三胞胎和十六进制颜色代码可用于指定自定义颜色。
一个RGB值三元素行向量的元素指定强度的红色,绿色和蓝色的组件的颜色。强度必须在范围内
[0,1]
;例如,(0.4 0.6 0.7)
。十六进制颜色代码是一个特征向量或一个字符串标量,始于一个散列符号(
#
)后面跟着三个月或六个十六进制数字,它的范围可以从0
来F
。的值是不区分大小写的。因此,颜色代码“# FF8800”
,“# ff8800”
,“# F80”
,“# f80”
是等价的。
或者,您可以指定一些常见颜色的名字。此表列出了命名颜色选项,相当于RGB三胞胎,十六进制颜色代码。
颜色名称 | 短名称 | RGB值 | 十六进制颜色代码 | 外观 |
---|---|---|---|---|
“红色” |
“r” |
(1 0 0) |
“# FF0000” |
|
“绿色” |
“g” |
(0 1 0) |
“# 00 ff00” |
|
“蓝色” |
“b” |
(0 0 1) |
“# 0000 ff” |
|
“青色” |
“c” |
(0 1 1) |
“# 00飞行符” |
|
“红色” |
“m” |
(1 0 1) |
“#”就 |
|
“黄色” |
“y” |
(1 1 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
(假
)。的值“上”
相当于真正的
,“关闭”
相当于假
。因此,您可以使用这个属性的值作为一个逻辑值。存储的值是作为一个开/关逻辑值的类型matlab.lang.OnOffSwitchState
。
“上”
——显示对象。“关闭”
——隐藏对象没有删除它。你仍然可以访问一个看不见的UI组件的属性。
让你的应用程序启动更快,设置可见
财产“关闭”
对所有组件,不需要在启动时出现。
改变大小的一个看不见的容器触发SizeChangedFcn
回调时变得可见。
改变了可见
属性的容器不改变的值可见
子组件的属性。这是真的,即使藏容器使子组件被隐藏。
属性:
GetAccess |
公共
|
SetAccess |
公共
|
依赖 |
真正的
|
GetObservable |
真正的
|
SetObservable |
真正的
|
快捷菜单
- - - - - -上下文菜单
空GraphicsPlaceholder
数组(默认)|快捷菜单
对象
指定为一个上下文菜单快捷菜单
对象创建使用uicontextmenu
函数。使用这个属性来显示一个上下文菜单,当你右键单击一个区域的组件,不包含任何潜在的UI组件或图形对象。
显示一个上下文菜单,当你右键点击自定义UI组件的任何部分,编写代码来设置快捷菜单
所有潜在的UI组件和图形对象的属性时快捷菜单
您的自定义组件的属性集。
例子:组件上下文菜单
这段代码创建了一个简单的自定义UI组件与一个标签和一个按钮在网格布局管理器。当一个用户创建的实例SimpleComponent
组件类和分配一个上下文菜单,中的代码更新
方法然后向底层分配相同的上下文菜单GridLayout
,按钮
,标签
对象。
classdefSimpleComponent < matlab.ui.componentcontainer.ComponentContainer属性(=私人访问,瞬态NonCopyable) GridLayoutmatlab.ui.container.GridLayout按钮matlab.ui.control.Button标签matlab.ui.control.Label结束方法(访问=保护)函数设置(obj)%设置组件大小obj。位置= (100 100 220 50);%创建网格obj。GridLayout = uigridlayout (obj, [1 - 2]);%创建组件obj。标签= uilabel (obj.GridLayout,…“文本”,“我的组件”);obj。按钮= uibutton (obj.GridLayout);结束函数更新(obj) obj.GridLayout。快捷菜单= obj.ContextMenu; obj.Label.ContextMenu = obj.ContextMenu; obj.Button.ContextMenu = obj.ContextMenu;结束结束结束
创建一个SimpleComponent
对象,并指定一个上下文菜单。右键单击空白的组件,并在标签上。上下文菜单中出现。
无花果= uifigure;厘米= uicontextmenu(图);m1 = uimenu(厘米);SimpleComponent(图,“快捷菜单”厘米);
属性:
GetAccess |
公共
|
SetAccess |
公共
|
NonCopyable |
真正的
|
瞬态 |
真正的
|
GetObservable |
真正的
|
SetObservable |
真正的
|
位置
- - - - - -UI组件的大小和位置,不包括利润
(100 100 100 100)
(默认)|(左底宽高)
UI组件的大小和位置,不包括利润等装饰轴标签和刻度线。这个属性指定为一个向量的形式(左底宽高)
。
请注意
设置这个属性没有影响当父的UI组件是一个GridLayout
。
属性:
GetAccess |
公共
|
SetAccess |
公共
|
依赖 |
真正的
|
单位
- - - - - -度量单位
“像素”
(默认)
度量单位,指定为“像素”
。
属性:
GetAccess |
公共
|
SetAccess |
公共
|
依赖 |
真正的
|
GetObservable |
真正的
|
SetObservable |
真正的
|
布局
- - - - - -布局选项
空LayoutOptions
数组(默认)|GridLayoutOptions
对象
布局选项,指定为一个GridLayoutOptions
对象。这个属性指定组件的选项的网格布局容器。如果组件不是孩子的网格布局容器(例如,它是一个孩子的图或面板),然后这个属性是空的,没有任何影响。然而,如果组件是一个孩子的网格布局容器,您可以将组件所需的行和列的网格通过设置行
和列
属性GridLayoutOptions
对象。
例如,这段代码的地方一个图像组件在第三行和第二列的网格。
3 g = uigridlayout ([4]);我=用户界面图像(g);即时通讯。ImageSource =“peppers.png”;即时通讯。ScaleMethod =“填满”;im.Layout。行= 3;im.Layout。列= 2;
使图像跨越多个行或列,指定行
或列
房地产作为一个双元素向量。例如,这张图片跨越列2
通过3
。
im.Layout。列= [2 3];
属性:
GetAccess |
公共
|
SetAccess |
公共
|
SizeChangedFcn
- - - - - -大小改变回调
”
(默认)|函数处理|单元阵列|特征向量
大小改变回调,指定这些值之一:
一个处理函数。
细胞数组中第一个元素是一个函数处理。后续单元阵列中的元素传递给回调函数的参数。
一个特征向量包含有效的MATLAB表达式(不推荐)。MATLAB计算表达式的基本工作空间。
的SizeChangedFcn
回调执行时间:
首次成为可见的组件。
该组件是可见的,它的大小变化。
组件可以第一次后尺寸变化。这种情况发生在规模变化而组件是无形的,然后就变得可见。
属性:
GetAccess |
公共
|
SetAccess |
公共
|
依赖 |
真正的
|
AbortSet |
真正的
|
GetObservable |
真正的
|
SetObservable |
真正的
|
NonCopyable |
真正的
|
CreateFcn
- - - - - -创建函数
”
(默认)|函数处理|单元阵列|特征向量
对象创建函数,指定这些值之一:
函数处理。
细胞数组中第一个元素是一个函数处理。后续单元阵列中的元素传递给回调函数的参数。
特征向量包含一个有效的MATLAB表达式(不推荐)。MATLAB计算表达式的基本工作空间。
更多信息关于指定一个回调函数处理,细胞数组,或字符向量,明白了回调程序设计师。
这个属性指定一个回调函数执行时MATLAB创建对象。MATLAB之前执行初始化所有的属性值CreateFcn
回调。如果你不指定CreateFcn
属性,然后MATLAB执行默认创建函数。
设置CreateFcn
属性在一个现有的组件没有影响。
如果指定这个属性作为处理函数或细胞数组,您可以访问的对象被创建使用回调函数的第一个参数。否则,使用gcbo
函数来访问该对象。
属性:
GetAccess |
公共
|
SetAccess |
公共
|
依赖 |
真正的
|
AbortSet |
真正的
|
GetObservable |
真正的
|
SetObservable |
真正的
|
NonCopyable |
真正的
|
DeleteFcn
- - - - - -删除函数
”
(默认)|函数处理|单元阵列|特征向量
对象删除函数,指定这些值之一:
函数处理。
细胞数组中第一个元素是一个函数处理。后续单元阵列中的元素传递给回调函数的参数。
特征向量包含一个有效的MATLAB表达式(不推荐)。MATLAB计算表达式的基本工作空间。
更多信息关于指定一个回调函数处理,细胞数组,或字符向量,明白了回调程序设计师。
这个属性指定一个回调函数执行时MATLAB删除对象。MATLAB执行DeleteFcn
回调之前破坏对象的属性。如果你不指定DeleteFcn
属性,然后MATLAB默认执行删除功能。
如果指定这个属性作为处理函数或细胞数组,您可以访问的对象被删除使用回调函数的第一个参数。否则,使用gcbo
函数来访问该对象。
属性:
GetAccess |
公共
|
SetAccess |
公共
|
依赖 |
真正的
|
AbortSet |
真正的
|
GetObservable |
真正的
|
SetObservable |
真正的
|
NonCopyable |
真正的
|
可中断
- - - - - -回调中断
“上”
(默认)|开/关逻辑值
回调中断,指定为“上”
或“关闭”
或数字或逻辑1
(真正的
)或0
(假
)。的值“上”
相当于真正的
,“关闭”
相当于假
。因此,您可以使用这个属性的值作为一个逻辑值。存储的值是作为一个开/关逻辑值的类型matlab.lang.OnOffSwitchState
。
这个属性决定了如果一个回调可以运行中断。有两种回调状态考虑:
的运行回调是当前执行的回调。
的打断回调是一个回调,试图中断正在运行的回调。
每当MATLAB调用回调,回调试图中断正在运行的回调(如果存在的话)。的可中断
对象的属性拥有运行调决定是否允许中断。
请注意
回调中断和执行不同的行为在这些情况下:
如果中断的回调
DeleteFcn
,CloseRequestFcn
或SizeChangedFcn
回调,那么无论发生中断可中断
属性值。如果运行目前执行的回调
等待
函数,那么无论发生中断可中断
属性值。计时器
根据时间表不管对象执行可中断
属性值。
属性:
GetAccess |
公共
|
SetAccess |
公共
|
GetObservable |
真正的
|
SetObservable |
真正的
|
BusyAction
- - - - - -回调排队
“队列”
(默认)|“取消”
回调排队,指定为“队列”
或“取消”
。的BusyAction
属性决定了MATLAB如何处理中断的执行回调。有两种回调状态考虑:
的运行回调是当前执行的回调。
的打断回调是一个回调,试图中断正在运行的回调。
每当MATLAB调用回调,回调试图中断一个正在运行的回调。的可中断
对象拥有的属性决定是否允许中断正在运行的回调。如果中断是不允许的,那么BusyAction
属性的对象拥有打断调决定如果它被丢弃或放入队列中。这些都是可能的值的BusyAction
属性:
“队列”
——将中断处理回调在一个队列跑回调结束后执行。“取消”
——不执行中断回调。
属性:
GetAccess |
公共
|
SetAccess |
公共
|
GetObservable |
真正的
|
SetObservable |
真正的
|
BeingDeleted
- - - - - -删除状态
开/关逻辑值
删除状态,作为一个开/关返回逻辑值的类型matlab.lang.OnOffSwitchState
。
MATLAB设置BeingDeleted
财产“上”
当DeleteFcn
回调函数开始执行。的BeingDeleted
房地产仍将“上”
直到组件对象已不复存在。
检查的价值BeingDeleted
属性来验证对象不会被删除之前查询或修改它。
属性:
GetAccess |
公共
|
SetAccess |
受保护的
|
GetObservable |
真正的
|
SetObservable |
真正的
|
父
- - - - - -父容器
图
对象(默认)|面板
对象|选项卡
对象|GridLayout
对象
父容器的组件,指定为一个图
,面板
,选项卡
,或GridLayout
对象。
属性:
GetAccess |
公共
|
SetAccess |
公共
|
瞬态 |
真正的
|
依赖 |
真正的
|
NonCopyable |
真正的
|
GetObservable |
真正的
|
SetObservable |
真正的
|
孩子们
- - - - - -UI组件的孩子
空GraphicsPlaceholder
数组
UI组件的孩子,作为一个空返回GraphicsPlaceholder
数组中。自定义UI组件没有孩子。设置这个属性没有影响。
属性:
GetAccess |
公共
|
SetAccess |
公共
|
瞬态 |
真正的
|
依赖 |
真正的
|
NonCopyable |
真正的
|
HandleVisibility
- - - - - -对象的可见性处理
“上”
(默认)|“回调”
|“关闭”
指定为对象的可见性处理“上”
,“回调”
,或“关闭”
。
这个属性控制对象的可见性在其父母的孩子。当一个对象不可见的父母的孩子,它不是由函数返回获取对象通过搜索对象层次结构或查询属性。这些功能包括得到
,findobj
,clf
,关闭
。对象是有效的,即使他们是不可见的。如果您可以访问一个对象,你可以设置它的属性,并将其传递给任何函数来操作对象。
HandleVisibility价值 | 描述 |
---|---|
“上” |
对象总是可见的。 |
“回调” |
对象是可见的在回调函数或函数调用回调,但不是在从命令行调用的函数。这个选项块访问对象的命令行,但是允许回调函数来访问它。 |
“关闭” |
对象是无形的。这个选项是有用的防止意外更改UI被另一个函数。设置HandleVisibility 来“关闭” 暂时隐藏对象在这个函数的执行。 |
属性:
GetAccess |
公共
|
SetAccess |
公共
|
依赖 |
真正的
|
GetObservable |
真正的
|
SetObservable |
真正的
|
类型
- - - - - -类型的UI组件对象
特征向量
类型的UI组件对象,包含组件名称作为特征向量返回。
属性:
GetAccess |
公共
|
SetAccess |
受保护的
|
NonCopyable |
真正的
|
瞬态 |
真正的
|
标签
- - - - - -对象标识符
”
(默认)|特征向量|字符串标量
对象标识符指定为一个特征向量或字符串标量。您可以指定一个唯一的标签
价值作为一个对象的标识符。当你需要访问对象在您的代码,您可以使用findobj
基于函数搜索对象标签
价值。
属性:
GetAccess |
公共
|
SetAccess |
公共
|
依赖 |
真正的
|
GetObservable |
真正的
|
SetObservable |
真正的
|
用户数据
- - - - - -用户数据
[]
(默认)|数组
用户数据,指定为任何MATLAB数组。例如,您可以指定一个标量、向量,矩阵,单元阵列,字符数组,表,或者结构。使用这个属性来存储任意数据对象。
如果你是在应用程序设计师工作,创建公共或私有属性的应用程序共享数据,而不是使用用户数据
财产。有关更多信息,请参见在应用程序设计应用程序共享数据。
属性:
GetAccess |
公共
|
SetAccess |
公共
|
瞬态 |
真正的
|
GetObservable |
真正的
|
SetObservable |
真正的
|
例子
IP地址输入
定义一个类IPAddressComponent
创建一个自定义组件输入四值形成一个IP地址。
定义类,创建一个文件IPAddressComponent.m
与这些特性包含以下类定义:
一个
价值
公共财产,商店的IP地址。NumericField
和GridLayout
私有财产,四个数字编辑字段在水平行。一个
设置
初始化方法NumericField
和GridLayout
。一个
更新
方法,更新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地址。
更多关于
为UI组件允许用户定义的回调函数
在定义类,你还可以添加一块UI组件触发的事件。
创建这样一个事件块,让你的类事件
块的HasCallbackProperty
属性。当你这样做时,MATLAB为每个事件创建一个公共财产的块。公共财产存储用户提供的回调事件触发时执行。公共财产的名称是事件附加的名字的字母Fcn
。例如,一个UI组件可以定义公共事件ValueChanged
并生成相应的公共财产ValueChangedFcn
。使用通知
方法和执行触发事件回调的财产。
例如,这是事件块的UI组件允许用户选择一个颜色值。
事件ValueChanged (HasCallbackProperty NotifyAccess =保护)结束
通知
方法以火ValueChanged
事件和执行的回调ValueChangedFcn
当用户选择一个颜色值属性。函数getColorFromUser (obj) c = uisetcolor (obj.Value);如果(isscalar (c) & & (c = = 0))返回;结束%更新属性值oldValue = obj.Value;obj。值= c;%用户执行回调函数和听众通知(obj,“ValueChanged”);结束
f = uifigure;c = ColorSelector (f,“ValueChangedFcn”@ (o, e) disp (“改变”))
组件对象创建行为
在你定义你的类之后,当一个用户创建UI组件的一个实例,并将其添加到他们的应用程序,用MATLAB命令执行这些步骤:
如果用户没有指定一个家长,创建一个新的UI组件图和家长。
调用类
设置
方法。设置任何用户指定为名称的组件属性参数。
调用类
更新
方法。
版本历史
介绍了R2020b
打开举例
你们possedez一个版本modifiee de cet(中央东部东京)为例。Souhaitez-vous打开cet(中央东部东京)为例用vos修改吗?
对MATLAB
你们有派对在联合国留置权,对应这个对MATLAB:
倒实行la对saisissez-la在fenetre德对MATLAB。Les navigateurs web不sup金宝appportent Les MATLAB命令。
你也可以从下面的列表中选择一个网站:
表现最好的网站怎么走吗
选择中国网站(中文或英文)最佳站点的性能。其他MathWorks国家网站不优化的访问你的位置。