快捷菜单的属性
控制上下文菜单的外观和行为
上下文菜单是当您右键单击图形对象或UI组件时出现的菜单。使用uicontextmenu
函数创建上下文菜单并设置属性。通过更改属性值,可以修改上下文菜单的外观和行为。使用点符号来引用特定的上下文菜单对象和属性。方法创建的图形可以父化上下文菜单uifigure
或数字
函数。
FIG = ufigure;Cm = uicontextmenu(图);m = uimenu(cm,'Text','Go To File');fig.ContextMenu = cm;
回调
ContextMenuOpeningFcn
- - - - - -上下文菜单打开回调函数
”
(默认)|函数处理|单元阵列|特征向量
上下文菜单打开回调函数,指定为以下值之一:
一个函数句柄。
第一个元素为函数句柄的单元格数组。单元格数组中的后续元素是传递给回调函数的参数。
包含有效MATLAB的字符向量®表达式(不推荐)。MATLAB在基本工作空间中计算这个表达式。
有关将回调属性值指定为函数句柄、单元格数组或字符向量的详细信息,请参见指定回调函数.
CreateFcn
- - - - - -创建函数
”
(默认)|函数处理|单元阵列|特征向量
对象创建函数,指定为以下值之一:
函数处理。
单元格数组,其中第一个元素是函数句柄。单元格数组中的后续元素是传递给回调函数的参数。
包含有效MATLAB表达式的字符向量(不推荐)。MATLAB在基本工作空间中计算这个表达式。
有关将回调指定为函数句柄、单元格数组或字符向量的详细信息,请参见应用程序设计器中的回调.
此属性指定在MATLAB创建对象时执行的回调函数。函数执行之前,MATLAB初始化所有属性值CreateFcn
回调。如果没有指定CreateFcn
属性,然后MATLAB执行默认的创建函数。
设置CreateFcn
属性在现有组件上不起作用。
如果将此属性指定为函数句柄或单元格数组,则可以使用回调函数的第一个参数访问正在创建的对象。否则,使用gcbo
函数来访问对象。
DeleteFcn
- - - - - -删除函数
”
(默认)|函数处理|单元阵列|特征向量
对象删除函数,指定为以下值之一:
函数处理。
单元格数组,其中第一个元素是函数句柄。单元格数组中的后续元素是传递给回调函数的参数。
包含有效MATLAB表达式的字符向量(不推荐)。MATLAB在基本工作空间中计算这个表达式。
有关将回调指定为函数句柄、单元格数组或字符向量的详细信息,请参见应用程序设计器中的回调.
此属性指定在MATLAB删除对象时执行的回调函数。MATLAB执行DeleteFcn
在销毁对象的属性之前。如果没有指定DeleteFcn
属性,然后MATLAB执行默认删除函数。
如果将此属性指定为函数句柄或单元格数组,则可以使用回调函数的第一个参数访问正在删除的对象。否则,使用gcbo
函数来访问对象。
回调执行控制
可中断
- - - - - -回调中断
“上”
(默认)|开/关逻辑值
回调中断,指定为“上”
或“关闭”
,或作为数字或逻辑1
(真正的
)或0
(假
).值为“上”
等于真正的
,“关闭”
等于假
.因此,您可以将此属性的值用作逻辑值。该值存储为类型的on/off逻辑值matlab.lang.OnOffSwitchState
.
此属性决定是否可以中断正在运行的回调。有两种回调状态需要考虑:
的运行Callback是当前正在执行的Callback。
的打断回调是试图中断正在运行的回调的回调。
MATLAB在执行处理回调队列的命令时确定回调中断行为。这些命令包括drawnow
,数字
,uifigure
,getframe
,等待
,暂停
.
如果正在运行的回调不包含这些命令之一,则不会发生中断。MATLAB首先完成运行回调的执行,然后再执行中断回调。
如果正在运行的回调包含这些命令之一,则可中断
属性决定是否发生中断:
如果的值
可中断
是“关闭”
,则不发生中断。相反,BusyAction
属性确定中断回调是被丢弃还是添加到回调队列。如果的值
可中断
是“上”
,则中断。下一次MATLAB处理回调队列时,它将停止正在运行的回调的执行,并执行中断的回调。中断回调完成后,MATLAB继续执行正在运行的回调。
请注意
回调中断和执行在以下情况下表现不同:
如果中断回调是
DeleteFcn
,CloseRequestFcn
,或SizeChangedFcn
回调函数时,中断发生,而不管可中断
属性值。方法当前正在执行
等待
函数,则中断发生而不管可中断
属性值。如果中断回调属于
计时器
对象,则回调函数将根据调度执行,而不管可中断
属性值。
BusyAction
- - - - - -回调排队
“队列”
(默认)|“取消”
回调队列,指定为“队列”
或“取消”
.的BusyAction
属性决定MATLAB如何处理中断回调的执行。有两种回调状态需要考虑:
的运行Callback是当前正在执行的Callback。
的打断回调是试图中断正在运行的回调的回调。
的BusyAction
属性仅在满足以下两个条件时确定回调排队行为:
在这些条件下,BusyAction
拥有中断回调的对象的属性决定了MATLAB如何处理中断回调。的可能值BusyAction
属性:
“队列”
—将中断的回调放到队列中,待正在运行的回调执行完成后再处理。“取消”
—不执行中断回调。
BeingDeleted
- - - - - -删除状态
开/关逻辑值
此属性是只读的。
删除状态,作为类型的on/off逻辑值返回matlab.lang.OnOffSwitchState
.
MATLAB设置BeingDeleted
财产“上”
当DeleteFcn
回调开始执行。的BeingDeleted
属性仍然设置为“上”
直到组件对象不再存在。
的值BeingDeleted
属性在查询或修改对象之前验证对象是否即将被删除。
父/子
孩子们
- - - - - -上下文菜单子菜单
空GraphicsPlaceholder
数组(默认)|向量的菜单
对象
上下文菜单的子菜单,返回为空GraphicsPlaceholder
或者向量菜单
对象。
属性不能添加或删除子元素孩子们
财产。使用此属性可查看子菜单项的列表或重新排序子菜单项。此数组中的子元素的顺序反映了菜单项在打开的上下文菜单中出现的相反顺序。
例如,这段代码创建了三个上下文菜单。当你在运行的应用程序中打开上下文菜单时,Menu1
显示为第一个菜单选项。
FIG = ufigure;Cm = uicontextmenu(图);M1 = uimenu(cm,“文本”,“Menu1”);M2 = uimenu(cm,“文本”,“Menu2”);M3 = uimenu(cm,“文本”,“Menu3”);fig.ContextMenu = cm;
![包含三个菜单项的上下文菜单。](http://www.ru-cchi.com/help/matlab/ref/contextmenu_children_appd_and_gui.png)
厘米。孩子们
以相反的顺序返回菜单项列表。
厘米。孩子们
ans = 3×1菜单数组:菜单(Menu3)菜单(Menu2)菜单(Menu1)
对象具有HandleVisibility
属性设置为“关闭”
都没有列在孩子们
财产。
要将子元素添加到此列表中,请设置父
他人财产菜单
反对这个快捷菜单
对象。
HandleVisibility
- - - - - -对象句柄的可见性
“上”
(默认)|“回调”
|“关闭”
对象句柄的可见性,指定为“上”
,“回调”
,或“关闭”
.
此属性控制对象在其父对象的子列表中的可见性。当一个对象在其父对象的子列表中不可见时,通过搜索对象层次结构或查询属性获取对象的函数将不会返回该对象。这些函数包括得到
,findobj
,gca
,gcf
,gco
,newplot
,班
,clf
,关闭
.的HandleVisibility
属性还控制该对象的句柄在父图形的句柄中的可见性CurrentObject
财产。对象即使不可见也是有效的。如果可以访问对象,就可以设置和获取其属性,并将其传递给对对象进行操作的任何函数。
HandleVisibility价值 | 描述 |
---|---|
“上” |
对象句柄总是可见的。 |
“回调” |
对象句柄在回调或回调调用的函数中可见,但在从命令行调用的函数中不可见。此选项阻止在命令行上访问对象,但允许回调函数访问它。 |
“关闭” |
对象句柄在任何时候都不可见。此选项对于防止另一个函数对UI的意外更改非常有用。设置HandleVisibility 来“关闭” 在函数执行期间暂时隐藏句柄。 |
版本历史
R2006a之前介绍R2020a:回调
的属性快捷菜单
不推荐使用。
从R2020a开始,使用回调
的属性快捷菜单
对象,不建议使用。使用ContextMenuOpeningFcn
的属性快捷菜单
对象。属性值是相同的。
目前还没有计划取消对回调
的属性快捷菜单
此时的对象。方法返回的列表中不再出现此属性得到
函数在快捷菜单
对象。
R2020a:可见
而且位置
的属性快捷菜单
对象不推荐使用
从R2020a开始,使用可见
而且位置
不建议使用属性来配置在特定位置打开的上下文菜单。创建的应用程序中uifigure
函数,使用开放
函数来代替。
目前还没有计划取消对可见
而且位置
的属性快捷菜单
此时的对象。方法返回的列表中不再出现这些属性得到
函数在快捷菜单
对象。
另请参阅
MATLAB命令
你点击了一个对应于这个MATLAB命令的链接:
在MATLAB命令窗口中输入该命令来运行该命令。Web浏览器不支持MATLAB命令。
您也可以从以下列表中选择一个网站:
如何获得最佳的网站性能
选择中国站点(中文或英文)以获得最佳站点性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。