UIControl 属性
控制用户界面控件的外观和行为
用户界面控件是用户可与之交互的组件,如按钮和滑块。uicontrol
函数创建一个用户界面控件,并在显示它之前设置任何必需属性。通过更改属性值,可以修改用户界面控件的外观和行为。使用圆点表示法引用特定的对象和属性。
例如,以下代码创建一个按钮,将 UIControl
对象存储为 b
,然后使用圆点表示法设置 Position
属性。
f = figure; b = uicontrol(f,'Style','pushbutton'); b.Position = [100 100 50 20];
控件类型
UIControl
的样式,指定为下表中的值之一。
样式值 | 描述 |
---|---|
'pushbutton' | 释放鼠标按键前显示为按下状态的按钮。 |
'togglebutton' | 可具有两种状态(未按下和按下)的按钮。每次点击切换按钮时,它的状态都会发生变化。 |
'checkbox' | 可具有两种状态(选中或取消选中)的复选框。当用户在其上点击并释放鼠标按键时,状态发生变化。 |
'radiobutton' | 可具有两种状态(选择和取消选择)的按钮。单选按钮在一组相关的单选按钮中有意安排为互斥。 |
'edit' | 可编辑的文本字段。 |
'text' | 静态文本字段。 |
'slider' | 用户沿水平或垂直栏按下的按钮。按钮的位置指示指定范围中的值。 |
'listbox' | 用户可从中选择一项或多项的项列表。与弹出式菜单不同,点击列表框时不会展开。 |
'popupmenu' | 孤立菜单,在点击它时,它将展开以显示选择列表。它处于折叠状态时,菜单显示当前选择。 |
当前值,指定为数字。Value
属性可用于查询或修改某些 uicontrol 的状态:
Uicontrol 的样式 | 值属性的描述 |
---|---|
'togglebutton' |
|
'checkbox' |
|
'radiobutton' |
|
'slider' | Value 属性等于对应的滑块控件的值。 |
'listbox' | Value 属性等于与列表框中的选定项对应的数组索引。值 1 对应于列表中的第一个项目。 |
'popupmenu' | Value 属性等于与弹出式菜单中的选定项对应的数组索引。值 1 对应于弹出式菜单中的第一项。 |
最大值,指定为数字。Max
属性影响某些 uicontrol 的表示形式:
Uicontrol 的样式 | 值属性的描述 |
---|---|
'togglebutton' | 按下切换按钮时,Value 属性更改为 Max 属性的值。 |
'checkbox' | 当选中复选框时,Value 属性更改为 Max 属性的值。 |
'radiobutton' | 当选择单选按钮时,Value 属性更改为 Max 属性的值。 |
'edit' | 当
|
'slider' | Max 属性值是滑块控件的最大值,该值必须大于 Min 属性值。 |
'listbox' | Max 属性值可帮助确定用户是否可同时选择列表框中的多个项目。如果 Max – Min > 1,则用户可以同时选择多个项目。否则,用户不能同时选择多个项目。如果设置 Max 和 Min 属性以允许多个选择,则 Value 属性值可以是索引向量。 |
最小值,指定为数字。Min
属性影响某些 uicontrol 的表示形式:
Uicontrol 的样式 | 值属性的描述 |
---|---|
'togglebutton' | 抬起切换按钮时,Value 属性更改为 Min 属性的值。 |
'checkbox' | 当取消选中复选框时,Value 属性更改为 Min 属性的值。 |
'radiobutton' | 当取消选择单选按钮时,Value 属性更改为 Min 属性的值。 |
'edit' | 当
|
'slider' | Min 属性值是滑块控件的最小值,该值必须小于 Max 属性值。 |
'listbox' | Max 属性值可帮助确定用户是否可同时选择列表框中的多个项目。如果 Max – Min > 1,则用户可以同时选择多个项目。否则,用户不能同时选择多个项目。如果设置 Max 和 Min 属性以允许多个选择,则 Value 属性值可以是索引向量。 |
滑块控件的步长,指定为数组 [minorstep majorstep]
。此属性控制当用户点击箭头按钮或滑块槽(滑块滑道)时滑块值变化的幅度:
minorstep
是滑块范围的最小步长,当用户点击箭头按钮时,Value
属性将依此步长增加或减少。majorstep
是滑块范围的最小步长,当用户点击滑块槽时,Value
属性按此比例增加或减少。
当 majorstep
值大于 1 时,滑块比例不超过 100%。
minorstep
和 majorstep
都必须大于 1e-6
,而 minorstep
必须小于或等于 majorstep
。
当 majorstep
增大时,滑块指示符变长。当 majorstep
等于 1
时,滑块指示符是槽长的一半。对于大于 1
的 majorstep
值,滑块指示符更大。
示例
此滑块的范围符合以下条件:Max
– Min
= 1
。用户每按一下箭头按钮,滑块 Value
属性就更改 1%。当用户在滑块槽中点击时,该属性变化 10%。
s = uicontrol('Style','Slider','Min',0,'Max',1,'SliderStep',[0.01 0.10]);
列表框中顶部项的索引,指定为整数值。此属性仅适用于 UIControl
的列表框样式。此属性指定哪个项目显示在列表框中的最顶部位置,该列表框不够大,无法显示所有列表项。ListboxTop
值是您指定为 String
属性值的数组的索引。ListboxTop
值必须介于 1
和数组中的元素数之间。非整数值固定为下一最小整数。
注意
String
和 Value
属性可能覆盖 ListboxTop
属性,而不管所指定的 ListboxTop
值为何。ListboxTop
值可能随其他 UIControl
属性的值而变。例如,显式设置 Value
属性可将列表滚动到该值。
为获得最可靠的结果,请在 MATLAB® 在屏幕上绘制完用户界面控件后再查询或修改 ListboxTop
属性。
文本和样式
要显示的文本,指定为字符向量、字符向量元胞数组、字符串数组、分类数组或以管道分隔的行向量。Style
属性指示您可以使用的数组格式。
样式属性 | 支持的数组格式 | 示例 |
---|---|---|
'pushbutton' | 字符向量 字符向量元胞数组 字符串数组 分类数组 |
|
'togglebutton' | ||
'checkbox' | ||
'radiobutton' | ||
'edit' | ||
'text' | ||
'listbox' | 字符向量 字符向量元胞数组 字符串数组 分类数组 管道分隔的行向量 |
|
'popupmenu' |
注意
如果为普通按钮、切换按钮、复选框或单选按钮指定元胞数组或分类数组,则 MATLAB 仅显示数组中的第一个元素。
文本颜色,指定为 RGB 三元组、十六进制颜色代码或下表中列出的颜色选项之一。
RGB 三元组和十六进制颜色代码对于指定自定义颜色非常有用。
RGB 三元组是包含三个元素的行向量,其元素分别指定颜色中红、绿、蓝分量的强度。强度值必须位于
[0,1]
范围内,例如[0.4 0.6 0.7]
。十六进制颜色代码是字符向量或字符串标量,以井号 (
#
) 开头,后跟三个或六个十六进制数字,范围可以是0
到F
。这些值不区分大小写。因此,颜色代码"#FF8800"
与"#ff8800"
、"#F80"
与"#f80"
是等效的。
此外,还可以按名称指定一些常见的颜色。下表列出了命名颜色选项、等效 RGB 三元组和十六进制颜色代码。
颜色名称 | 短名称 | RGB 三元组 | 十六进制颜色代码 | 外观 |
---|---|---|---|---|
"red" | "r" | [1 0 0] | "#FF0000" | |
"green" | "g" | [0 1 0] | "#00FF00" | |
"blue" | "b" | [0 0 1] | "#0000FF" | |
"cyan" | "c" | [0 1 1] | "#00FFFF" | |
"magenta" | "m" | [1 0 1] | "#FF00FF" | |
"yellow" | "y" | [1 1 0] | "#FFFF00" | |
"black" | "k" | [0 0 0] | "#000000" | |
"white" | "w" | [1 1 1] | "#FFFFFF" |
下表列出了浅色和深色主题中绘图的默认调色板。
调色板 | 调色板颜色 |
---|---|
在 R2025a 之前的版本中: 大多数绘图默认使用这些颜色。 |
|
|
|
您可以使用 orderedcolors
和 rgb2hex
函数获取这些调色板的 RGB 三元组和十六进制颜色代码。例如,获取 "gem"
调色板的 RGB 三元组并将其转换为十六进制颜色代码。
RGB = orderedcolors("gem");
H = rgb2hex(RGB);
在 R2023b 之前的版本中: 使用 RGB = get(groot,"FactoryAxesColorOrder")
获取 RGB 三元组。
在 R2024a 之前的版本中: 使用 H = compose("#%02X%02X%02X",round(RGB*255))
获取十六进制颜色代码。
注意
如果对列表框更改 ForegroundColor
的值,则 MATLAB 对所有列表框项目使用该颜色,但当前选定的列表框项目除外。对于所选项,MATLAB 使用的颜色可确保在所选项的文本和选择颜色之间形成鲜明对比。
示例: [0 0 1]
示例: 'b'
示例: 'blue'
数据类型: double
| char
背景颜色,指定为 RGB 三元组、十六进制颜色代码或下表中列出的颜色选项之一。
RGB 三元组和十六进制颜色代码对于指定自定义颜色非常有用。
RGB 三元组是包含三个元素的行向量,其元素分别指定颜色中红、绿、蓝分量的强度。强度值必须位于
[0,1]
范围内,例如[0.4 0.6 0.7]
。十六进制颜色代码是字符向量或字符串标量,以井号 (
#
) 开头,后跟三个或六个十六进制数字,范围可以是0
到F
。这些值不区分大小写。因此,颜色代码"#FF8800"
与"#ff8800"
、"#F80"
与"#f80"
是等效的。
此外,还可以按名称指定一些常见的颜色。下表列出了命名颜色选项、等效 RGB 三元组和十六进制颜色代码。
颜色名称 | 短名称 | RGB 三元组 | 十六进制颜色代码 | 外观 |
---|---|---|---|---|
"red" | "r" | [1 0 0] | "#FF0000" | |
"green" | "g" | [0 1 0] | "#00FF00" | |
"blue" | "b" | [0 0 1] | "#0000FF" | |
"cyan" | "c" | [0 1 1] | "#00FFFF" | |
"magenta" | "m" | [1 0 1] | "#FF00FF" | |
"yellow" | "y" | [1 1 0] | "#FFFF00" | |
"black" | "k" | [0 0 0] | "#000000" | |
"white" | "w" | [1 1 1] | "#FFFFFF" |
下表列出了浅色和深色主题中绘图的默认调色板。
调色板 | 调色板颜色 |
---|---|
在 R2025a 之前的版本中: 大多数绘图默认使用这些颜色。 |
|
|
|
您可以使用 orderedcolors
和 rgb2hex
函数获取这些调色板的 RGB 三元组和十六进制颜色代码。例如,获取 "gem"
调色板的 RGB 三元组并将其转换为十六进制颜色代码。
RGB = orderedcolors("gem");
H = rgb2hex(RGB);
在 R2023b 之前的版本中: 使用 RGB = get(groot,"FactoryAxesColorOrder")
获取 RGB 三元组。
在 R2024a 之前的版本中: 使用 H = compose("#%02X%02X%02X",round(RGB*255))
获取十六进制颜色代码。
可选图标,指定为三维真彩色 RGB 值数组。数组中的值可以是:
介于
0.0
和1.0
之间的双精度值介于
0
和255
之间的uint8
值
普通按钮和切换按钮是唯一完全支持 CData
的 UIControl
对象。如果为单选按钮或复选框指定 CData
属性,则图像可能与文本重叠。另外,为单选按钮或复选框指定图像会禁用在选择或取消选择它们时显示的功能。
数据类型: double
| uint8
字体
字体名称,指定为系统支持的字体名称或 'FixedWidth'
。默认字体取决于具体操作系统和区域设置。
要使用在任何区域设置中都有较好显示效果的等宽字体,请指定 'FixedWidth'
。使用的实际等宽字体取决于根对象的 FixedWidthFontName
属性。更改 FixedWidthFontName
属性会导致立即更新显示方式以使用新字体。
示例: 'Arial'
字体大小,指定为正数。FontUnits
属性指定单位。默认大小取决于系统。
示例: 12
示例: 12.5
字体粗细,指定为下表中的值之一。
'normal'
- 特定字体定义的默认粗细'bold'
- 字符轮廓比普通字符粗
MATLAB 使用 FontWeight
属性从系统提供的字体中选择一种字体。并非所有字体都有加粗字体。因此,指定加粗字体仍可能得到普通字体。
注意
在 R2014b 中,'light'
和 'demi'
字体粗细值已被移除。如果指定其中任一值,则结果是正常字体粗细。
字体角度,指定为 'normal'
或 'italic'
。MATLAB 根据此属性从系统上的可用字体中选择一种字体。将此属性设置为 'italic'
可选择字体的倾斜版本(如果系统上提供了该字体)。
注意
'oblique'
值已被删除。请改用 'italic'
。
字体单位,指定为下表中的值之一。
单位值 | 描述 |
---|---|
'pixels' | 像素。 在 Windows® 和 Macintosh 系统上,像素的大小为 1/96 英寸。此大小与系统分辨率无关。 在 Linux® 系统上,一个像素的大小由系统分辨率确定。 |
'points' | 磅。1 磅等于 1/72 英寸。 |
'normalized' | 归一化值,将字体大小指定为高度的一定比例。当您调整 UI 组件的大小时,MATLAB 会缩放显示的字体以保持该比例。 |
'inches' | 英寸。 |
'centimeters' | 厘米。 |
交互性
可见性状态,指定为 'on'
或 'off'
,或者指定为数值或逻辑值 1
(true
) 或 0
(false
)。值 'on'
等效于 true
,'off'
等效于 false
。因此,您可以使用此属性的值作为逻辑值。该值存储为 matlab.lang.OnOffSwitchState
类型的 on/off 逻辑值。
'on'
- 显示对象。'off'
- 隐藏对象而不删除它。您仍然可以访问不可见 UI 组件的属性。
要使您的 App 更快地启动,请将不需要在启动时出现的所有 UI 组件的 Visible
属性设置为 'off'
。
用户界面控件的工作状态,指定为 'on'
、'off'
或 'inactive'
。Enable
属性控制用户界面控件是否响应用户交互。以下是可能的值:
'on'
- 用户界面控件处于工作状态。'off'
- 用户界面控件未处于工作状态,并且呈灰显。'inactive'
- 用户界面控件未处于工作状态,但外观与Enable
设置为'on'
时相同。
工具提示,指定为字符向量、字符串标量或分类数组。如果使用此属性,则在运行时当用户将指针悬停在组件上时,将显示消息。禁用组件时,不显示工具提示。如果将此属性指定为分类数组,MATLAB 将使用数组中的值,而不是完整的类别集。
要创建多行文本,请使用 sprintf
函数在文本中插入换行符 ('\n'
)。例如:
txt = sprintf('Line 1\nLine 2');
然后将 Tooltip
属性设置为 sprintf
返回的值。
上下文菜单,指定为使用 uicontextmenu
函数创建的 ContextMenu
对象。使用此属性可在您右键点击组件时显示上下文菜单。
工具提示,指定为字符向量、字符串标量或分类数组。当您将鼠标悬停在 App 中的组件上时,会出现工具提示。如果将此属性指定为分类数组,MATLAB 将使用数组中的值,而不是完整的类别集。
注意
从 R2018b 开始,不推荐使用 TooltipString
属性。请改用 Tooltip
属性。
注意
Selected
属性的行为在 R2014b 中已经改变,不推荐使用。它对此类型的对象不会再产生任何影响。在以后的版本中可能会删除该属性。
注意
SelectionHighlight
属性的行为在 R2014b 中已经改变,不推荐使用。它对此类型的对象不会再产生任何影响。在以后的版本中可能会删除该属性。
位置
位置和大小,指定为 [left bottom width height]
形式的四元素向量。此表介绍该向量中的每个元素。
元素 | 描述 |
---|---|
left | 父容器的内部左边缘与用户界面控件的外部左边缘之间的距离 |
bottom | 父容器的内部下边缘与用户界面控件的外部下边缘之间的距离 |
width | 用户界面控件的左右外侧边缘之间的距离 |
height | 用户界面控件的上下外侧边缘之间的距离 |
所有测量值都采用 Units
属性指定的单位。
注意
Position
值相对于父容器的可绘制区域。可绘制区域是指容器边框内的区域,不包括标题所占的区域。如果父容器是一个图窗,可绘制区域还不包括菜单栏和工具栏。
修改位置向量中的一个值
如果要更改 Position
向量中的一个值,可以结合使用圆点表示法和数组索引。例如,下面的代码将用户界面控件的宽度更改为 52
:
b = uicontrol; b.Position(3) = 52; b.Position
ans = 20 20 52 20
位置和大小,指定为 [left bottom width height]
形式的四元素向量。所有测量值都采用 Units
属性指定的单位。
此属性值等同于 Position
和 OuterPosition
属性值。
位置和大小,指定为 [left bottom width height]
形式的四元素向量。所有测量值都采用 Units
属性指定的单位。
此属性值等同于 Position
和 InnerPosition
属性值。
此 属性 为只读。
外围矩形的大小,以四元素行向量形式返回。向量的前两个元素始终为零。第三和第四个元素分别是矩形的宽度和高度。所有测量值都采用 Units
属性指定的单位。
MATLAB 基于 String
属性值的大小和字体特征确定矩形的大小。要调整宽度和高度以适应 String
值的大小,请将 Position
宽度和高度值设置为略大于 Extent
的宽度和高度值。
对于属于单行文本的 String
值,Extent
属性的高度元素指示单行的高度。宽度元素指示最长线条的宽度,即使显示在控件上的文本换行时也是如此。对于多行文本,Extent
矩形包含所有文本行。如果 Max
– Min
> 1
,则将可编辑的文本字段视为多行。
测量单位,指定为下表中的值之一。
单位值 | 描述 |
---|---|
'pixels' (默认值) | 像素。 在 Windows 和 Macintosh 系统上,像素的大小为 1/96 英寸。此大小与系统分辨率无关。 在 Linux 系统上,一个像素的大小由系统分辨率确定。 |
'normalized' | 这些单位依据父容器进行归一化。容器的左下角映射到 (0,0) ,右上角映射到 (1,1) 。 |
'inches' | 英寸。 |
'centimeters' | 厘米。 |
'points' | 磅。1 磅等于 1/72 英寸。 |
'characters' | 这些单位基于图形根对象的默认 uicontrol 字体:
要访问默认的 uicontrol 字体,请使用 |
MATLAB 从父对象的左下角测量所有单位。
此属性会影响 Position
属性。如果更改 Units
属性,请考虑在完成计算后将其值还原为默认值,以免影响采用默认值的其他函数。
指定 Units
和 Position
属性的顺序具有以下影响:
如果您在
Position
属性之前指定Units
,则 MATLAB 会使用您指定的单位来设置Position
。如果您在
Position
属性之后指定Units
属性,则 MATLAB 会使用默认的Units
来设置 position。然后,MATLAB 将Position
值转换为以您指定的单位表示的等价值。
uicontrol 文本的对齐方式,指定为 'center'
、'left'
或 'right'
。此属性确定 String
属性文本的对齐方式。
HorizontalAlignment
属性仅影响 uicontrol 的 'text'
和 'edit'
样式。
回调
主回调函数,指定为下列值之一:
函数句柄。
第一个元素是函数句柄的元胞数组。元胞数组中的后续元素是传递到回调函数的参量。
包含有效 MATLAB 表达式的字符向量(不推荐)。MATLAB 在基础工作区计算此表达式。
此函数将执行以响应用户交互,例如普通按钮点击、滑块移动或复选框选中。仅当 UIControl
对象的 Enable
属性设置为 'on'
时,此函数才能执行。
有关将回调属性值指定为函数句柄、元胞数组或字符向量的详细信息,请参阅Specify a Callback Function。
数据类型: function_handle
| cell
| char
按下鼠标按键回调函数,指定为下列值之一:
函数句柄。
第一个元素是函数句柄的元胞数组。元胞数组中的后续元素是传递到回调函数的参量。
包含有效 MATLAB 表达式的字符向量(不推荐)。MATLAB 在基础工作区计算此表达式。
有关将回调属性值指定为函数句柄、元胞数组或字符向量的详细信息,请参阅Specify a Callback Function。
ButtonDownFcn
回调是当用户在 UI 组件上点击鼠标按键时执行的函数。回调在以下情形下执行:
用户右键点击 UI 组件,并且
Enable
属性设置为'on'
。用户右键点击或左键点击 UI 组件,并且
Enable
属性设置为'off'
或'inactive'
。
按键回调函数,指定为下列值之一:
函数句柄。
第一个元素是函数句柄的元胞数组。元胞数组中的后续元素是传递到回调函数的参量。
包含有效 MATLAB 表达式的字符向量(不推荐)。MATLAB 在基础工作区计算此表达式。
有关将回调属性值指定为函数句柄、元胞数组或字符向量的详细信息,请参阅Specify a Callback Function。
当 UIControl
对象获得焦点并且用户按下键时执行该回调函数。如果您没有为该属性定义函数,则MATLAB 向父图窗传递按键操作。重复按键操作会保留 UIControl
对象的焦点,并在每次发生按键操作时执行该函数。如果用户几乎在同一时间按下多个键,MATLAB 将检测最后一个按键的按键操作。
如果将该属性指定为函数句柄(或包含函数句柄的元胞数组),则 MATLAB 会将包含回调数据的对象作为第二个参量传递给回调函数。该对象包含下表中介绍的属性。您可以使用圆点表示法访问回调函数内的这些属性。
属性 | 描述 | 示例: | |||
---|---|---|---|---|---|
a | = | Shift | Shift-a | ||
Character | 作为按下一个或多个键的结果显示的字符。字符可能为空或无法打印。 | 'a' | '=' | '' | 'A' |
Modifier | 包含按下的一个或多个修改键(例如 Ctrl、Alt、Shift)名称的元胞数组。 | {1x0 cell} | {1x0 cell} | {'shift'} | {'shift'} |
Key | 按下的键,通过键上的(小写字母)标签或文本描述标识。 | 'a' | 'equal' | 'shift' | 'a' |
Source | 当用户按下该键时获取焦点的对象。 | UIControl 对象 | UIControl 对象 | UIControl 对象 | UIControl 对象 |
EventName | 导致回调函数执行的操作。 | 'KeyPress' | 'KeyPress' | 'KeyPress' | 'KeyPress' |
按修改键会以下列方式影响回调数据:
修改键可影响
Character
属性,但不会更改Key
属性。特定键以及使用 Ctrl 修饰的键会在
Character
属性中放置无法打印的字符。Ctrl、Alt、Shift 以及其他几个键不会生成
Character
属性数据。
您还可以查询图窗的 CurrentCharacter
属性以确定用户按下的字符。
释放键回调函数,指定为下列值之一:
函数句柄。
第一个元素是函数句柄的元胞数组。元胞数组中的后续元素是传递到回调函数的参量。
包含有效 MATLAB 表达式的字符向量(不推荐)。MATLAB 在基础工作区计算此表达式。
有关将回调属性值指定为函数句柄、元胞数组或字符向量的详细信息,请参阅Specify a Callback Function。
当 UIControl
对象获得焦点并且用户释放键时执行该回调函数。
如果将该属性指定为函数句柄(或包含函数句柄的元胞数组),则 MATLAB 会将包含回调数据的对象作为第二个参量传递给回调函数。该对象包含下表中介绍的属性。您可以使用圆点表示法访问回调函数内的这些属性。
属性 | 描述 | 示例: | |||
---|---|---|---|---|---|
a | = | Shift | Shift-a | ||
Character | 已释放的键的字符解释。 | 'a' | '=' | '' | 'A' |
Modifier | 当前修改键(例如, | {1x0 cell} | {1x0 cell} | {1x0 cell} | {1x0 cell} |
Key | 释放的键的名称,通过键上的小写字母标签或文本描述标识。 | 'a' | 'equal' | 'shift' | 'a' |
Source | 当用户按下该键时获取焦点的对象。 | UIControl 对象 | UIControl 对象 | UIControl 对象 | UIControl 对象 |
EventName | 导致回调函数执行的操作。 | 'ase' | 'ase' | 'ase' | 'ase' |
按修改键会以下列方式影响回调数据:
修改键可影响
Character
属性,但不会更改Key
属性。特定键以及使用 Ctrl 修饰的键会在
Character
属性中放置无法打印的字符。Ctrl、Alt、Shift 以及其他几个键不会生成
Character
属性数据。
您还可以查询图窗的 CurrentCharacter
属性以确定用户按下的字符。
组件创建函数,指定为下列值之一:
函数句柄。
第一个元素是函数句柄的元胞数组。元胞数组中的后续元素是传递到回调函数的参量。
包含有效 MATLAB 表达式的字符向量(不推荐)。MATLAB 在基础工作区计算此表达式。
有关将回调属性值指定为函数句柄、元胞数组或字符向量的详细信息,请参阅Specify a Callback Function。
此属性指定要在 MATLAB 创建组件时执行的回调函数。MATLAB 将在执行 CreateFcn
回调之前初始化所有的组件属性值。如果不指定 CreateFcn
属性,则 MATLAB 执行默认的创建函数。
可在您的 CreateFcn
代码中使用 gcbo
函数获取要创建的组件对象。
对现有组件对象设置 CreateFcn
属性没有任何作用。
组件删除函数,指定为下列值之一:
函数句柄。
第一个元素是函数句柄的元胞数组。元胞数组中的后续元素是传递到回调函数的参量。
包含有效 MATLAB 表达式的字符向量(不推荐)。MATLAB 在基础工作区计算此表达式。
有关将回调属性值指定为函数句柄、元胞数组或字符向量的详细信息,请参阅Specify a Callback Function。
DeleteFcn
属性指定要在 MATLAB 删除组件时(例如,当用户关闭窗口时)执行的回调函数。MATLAB 会在销毁组件对象的属性之前执行 DeleteFcn
回调。如果不指定 DeleteFcn
属性,则 MATLAB 执行默认的删除函数。
可在您的 DeleteFcn
代码中使用 gcbo
函数获取要删除的组件对象。
回调执行控件
回调中断,指定为 'on'
或 'off'
,或者指定为数值或逻辑值 1
(true
) 或 0
(false
)。值 'on'
等效于 true
,'off'
等效于 false
。因此,您可以使用此属性的值作为逻辑值。该值存储为 matlab.lang.OnOffSwitchState
类型的 on/off 逻辑值。
Interruptible
属性确定是否可以中断运行中回调。有以下两种回调状态要考虑:
运行中回调是当前正在执行的回调。
中断回调是试图中断运行中回调的回调。
每当 MATLAB 调用回调时,回调都会试图中断正在运行的回调(如果存在)。运行中回调所属对象的 Interruptible
属性决定着是否允许中断:
注意
回调的中断和执行在以下情况下会有不同的表现:
有关演示 Interruptible
和 BusyAction
属性如何影响程序行为的示例,请参阅Interrupt Callback Execution。
回调排队,指定为 'queue'
(默认值)或 'cancel'
。BusyAction
属性决定 MATLAB 如何处理中断回调的执行。有以下两种回调状态要考虑:
运行中回调是当前正在执行的回调。
中断回调是试图中断运行中回调的回调。
中断回调的来源的 BusyAction
属性决定 MATLAB 如何处理其执行。BusyAction
属性具有下列值:
'queue'
- 将中断回调放入队列中,以便在运行中回调执行完毕后进行处理。'cancel'
- 不执行中断回调。
无论何时 MATLAB 调用回调,该回调都会试图中断正在执行的回调。运行中回调所属对象的 Interruptible
属性确定是否允许回调。如果 Interruptible
设置为:
on
- 在下一个时间点(MATLAB 处理队列时)发生中断。这是默认设置。off
-BusyAction
属性(中断回调所属对象的属性)确定 MATLAB 是将中断回调纳入队列还是将其忽略。
有关演示 BusyAction
和 Interruptible
属性如何影响程序行为的示例,请参阅Interrupt Callback Execution。
此 属性 为只读。
删除状态,以 matlab.lang.OnOffSwitchState
类型的 on/off 逻辑值形式返回。
当 DeleteFcn
回调开始执行时,MATLAB 会将 BeingDeleted
属性设置为 'on'
。BeingDeleted
属性将一直保持 'on'
设置状态,直到组件对象不再存在为止。
在查询或修改对象之前,请先检查其 BeingDeleted
属性的值,以确认它不是待删除项。
是否能够成为当前对象,指定为 'on'
或 'off'
,或者指定为数值或逻辑值 1
(true
) 或 0
(false
)。值 'on'
等效于 true
,'off'
等效于 false
。因此,您可以使用此属性的值作为逻辑值。该值存储为 matlab.lang.OnOffSwitchState
类型的 on/off 逻辑值。
'on'
- 当用户点击正在运行的 App 中的组件时,将当前对象设置为UIControl
。Figure
和gco
函数的CurrentObject
属性都返回UIControl
作为当前对象。'off'
- 当用户点击正在运行的 App 中的组件时,从UIControl
的前代中找到HitTest
设置为'on'
的最近前代并将当前对象设置为该前代。
父级/子级
父对象,指定为 Figure
、Panel
、ButtonGroup
或 Tab
对象。使用此属性可在创建 UI 组件时指定父容器,或将现有 UI 组件移动到其他父容器中。
UIControl
子级,以空数组形式返回。UIControl
对象没有子级。设置此属性不会产生任何影响。
UIControl
句柄的可见性,指定为 'on'
、'callback'
或 'off'
。
此属性控制 UIControl
句柄在其父级的子级列表中的可见性。当句柄未显示在其父对象的子对象列表中时,通过搜索对象层次结构或查询句柄属性获取句柄的函数不会返回该句柄。这些函数包括 get
、findobj
、gca
、gcf
、gco
、newplot
、cla
、clf
和 close
。HandleVisibility
属性还控制对象句柄是否显示在父图窗的 CurrentObject
属性中。句柄即使在不可见时也仍有效。如果您知道对象的句柄,可以对其属性执行 set 和 get 操作并将句柄传递给处理句柄的任何函数。
HandleVisibility 值 | 描述 |
---|---|
'on' | UIControl 句柄始终可见。 |
'callback' | UIControl 句柄对于回调或回调调用的函数可见,但对于命令行调用的函数不可见。该选项阻止通过命令行访问 UIControl ,但允许回调函数访问它。 |
'off' | UIControl 句柄始终不可见。该选项用于防止另一函数无意中对 UI 进行更改。将 HandleVisibility 设置为 'off' 可在执行该函数时暂时隐藏句柄。 |
可以将图形根的 ShowHiddenHandles
属性设置为 'on'
以使所有句柄可见,而不管其 HandleVisibility
值如何。此设置对其 HandleVisibility
值没有任何影响。
注意
请勿尝试访问由 uibuttongroup
管理的按钮组外部的单选按钮和切换按钮。将这些单选按钮和切换按钮的 HandleVisibility
设置为 'off'
可防止意外访问。
版本历史记录
在 R2006a 之前推出从 R2020a 开始,不推荐使用 UIContextMenu
属性将上下文菜单分配给图形对象或 UI 组件。请改用 ContextMenu
属性。属性值是相同的。
目前没有停止支持 UIContextMenu
属性的计划。但是,UIContextMenu
属性将不再出现在对图形对象或 UI 组件调用 get
函数时所返回的列表中。
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
选择网站
选择网站以获取翻译的可用内容,以及查看当地活动和优惠。根据您的位置,我们建议您选择:。
您也可以从以下列表中选择网站:
如何获得最佳网站性能
选择中国网站(中文或英文)以获得最佳网站性能。其他 MathWorks 国家/地区网站并未针对您所在位置的访问进行优化。
美洲
- América Latina (Español)
- Canada (English)
- United States (English)
欧洲
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)