文档帮助中心文档
回调
快捷菜单
可见
位置
控制上下文菜单的外观和行为
上下文菜单是在右键单击图形对象或UI组件时出现的菜单。使用uicontextmenu函数创建上下文菜单并设置属性。通过更改属性值,可以修改上下文菜单的外观和行为。使用点符号来引用一个特定的上下文菜单对象和属性。控件创建的图形可以作为上下文菜单的父级uifigure或数字函数。
uicontextmenu
uifigure
数字
无花果= uifigure;厘米= uicontextmenu(图);m = uimenu(cm,'文本','转到文件');fig.ContextMenu =厘米;
全部展开
ContextMenuOpeningFcn
''
上下文菜单打开回调函数,指定为以下值之一:
一个处理函数。
单元格数组,其中第一个元素是函数句柄。cell数组中的后续元素是要传递给回调函数的参数。
一个包含字符向量的有效MATLAB®表达式(不推荐)。MATLAB在基本工作空间中计算这个表达式。
有关将回调属性值指定为函数句柄、单元格数组或字符向量的详细信息,请参见指定回调函数.
CreateFcn
对象创建函数,指定为以下值之一:
函数处理。
字符向量包含有效的MATLAB表达式(不推荐)。MATLAB在基本工作空间中计算这个表达式。
有关将回调指定为函数句柄、单元格数组或字符向量的详细信息,请参见在应用程序设计器中编写回调.
此属性指定MATLAB创建对象时执行的回调函数。方法之前,MATLAB初始化所有属性值CreateFcn回调。如果不指定CreateFcn属性,然后MATLAB执行一个默认创建函数。
设置CreateFcn属性对现有组件没有影响。
如果将此属性指定为函数句柄或单元格数组,则可以使用回调函数的第一个参数访问正在创建的对象。否则,使用gcbo函数访问对象。
gcbo
DeleteFcn
对象删除函数,指定为以下值之一:
此属性指定当MATLAB删除对象时执行的回调函数。MATLAB执行DeleteFcn在销毁对象的属性之前回调。如果不指定DeleteFcn属性,然后MATLAB执行一个默认删除函数。
如果将此属性指定为函数句柄或单元格数组,则可以使用回调函数的第一个参数访问要删除的对象。否则,使用gcbo函数访问对象。
可中断
“上”
回调中断,指定为“上”或“关闭”,或数字或逻辑1(真正的)或0(假).的值“上”相当于真正的,“关闭”相当于假.因此,可以将此属性的值用作逻辑值。该值存储为开启/关闭类型的逻辑值matlab.lang.OnOffSwitchState.
“关闭”
1
真正的
0
假
matlab.lang.OnOffSwitchState
此属性确定是否可以中断正在运行的回调。有两种回调状态需要考虑:
的运行Callback是当前正在执行的回调。
的打断Callback是一个试图中断正在运行的回调的回调。
MATLAB在执行处理回调队列的命令时确定回调中断行为。这些命令包括drawnow,数字,uifigure,getframe,等待,暂停.
drawnow
getframe
等待
暂停
如果正在运行的回调不包含这些命令之一,则不会发生中断。MATLAB首先完成运行回调的执行,然后执行中断回调。
如果正在运行的回调函数确实包含这些命令之一,则可中断拥有正在运行的回调的对象的属性决定中断是否发生:
如果可中断是“关闭”,则不发生中断。相反,BusyAction属性决定中断回调是否被丢弃或添加到回调队列中。
BusyAction
如果可中断是“上”,则中断发生。下一次MATLAB处理回调队列时,它将停止正在运行的回调的执行,并执行中断的回调。中断回调完成后,MATLAB将继续执行正在运行的回调。
请注意
在这些情况下,回调中断和执行的行为是不同的:
如果中断回调为DeleteFcn,CloseRequestFcn,或SizeChangedFcn回调,则中断发生不管可中断属性值。
CloseRequestFcn
SizeChangedFcn
如果正在运行的回调函数正在执行等待函数,则不管可中断属性值。
如果中断回调属于计时器对象,则回调将根据调度执行,而不管可中断属性值。
计时器
当中断发生时,MATLAB不保存属性或显示的状态。方法返回的对象gca或gcf命令可能在执行另一个回调时更改。
gca
gcf
“队列”
“取消”
回调排队,指定为“队列”或“取消”.的BusyAction属性决定了MATLAB如何处理中断回调的执行。有两种回调状态需要考虑:
的BusyAction属性仅在满足这两个条件时确定回调排队行为:
正在运行的回调包含处理回调队列的命令,例如drawnow,数字,uifigure,getframe,等待,或暂停.
价值可中断属性拥有正在运行的回调的对象“关闭”.
在这些条件下BusyAction属性决定了MATLAB如何处理中断回调。这些是可能的值BusyAction属性:
“队列”—将中断回调放入正在运行的回调执行完成后待处理的队列中。
“取消”—不执行中断回呼。
BeingDeleted
此属性是只读的。
删除状态,返回类型为开/关逻辑值matlab.lang.OnOffSwitchState.
MATLAB设置BeingDeleted财产“上”当DeleteFcn回调函数开始执行。的BeingDeleted属性仍然设置为“上”直到组件对象不再存在。
检查该值BeingDeleted属性来验证对象在查询或修改之前不会被删除。
父
父对象,指定为数字对象创建的uifigure或数字函数。如果没有指定父图形,则MATLAB调用数字函数创建一个作为父节点的节点。
你可以移动一个快捷菜单对象,通过将此属性设置为目标数字对象。
孩子们
GraphicsPlaceholder
菜单
上下文菜单子菜单,返回为空GraphicsPlaceholder或者向量菜单对象。
属性添加或删除子节点孩子们财产。使用此属性可查看子菜单项列表或对子菜单项重新排序。该数组中子元素的顺序反映了菜单项在打开的上下文菜单中显示的相反顺序。
例如,这段代码创建了三个上下文菜单。当你在运行的应用程序中打开上下文菜单时,Menu1显示为第一个菜单选项。
Menu1
无花果= uifigure;厘米= uicontextmenu(图);m1 = uimenu(厘米,“文本”,“Menu1”);m2 = uimenu(厘米,“文本”,“Menu2”);m3 = uimenu(厘米,“文本”,“Menu3”);fig.ContextMenu =厘米;
厘米。孩子们以相反的顺序返回菜单项的列表。
厘米。孩子们
ans = 3×1菜单数组:菜单(菜单3)菜单(菜单2)菜单(菜单1)
的对象HandleVisibility属性设置为“关闭”没有列在孩子们财产。
HandleVisibility
要将子列表添加到此列表,请设置父属性的另一个菜单反对这快捷菜单对象。
“回调”
对象句柄的可见性,指定为“上”,“回调”,或“关闭”.
此属性控制对象在其父的子列表中的可见性。当一个对象在其父的子列表中不可见时,通过搜索对象层次结构或查询属性获取对象的函数不会返回该对象。这些功能包括得到,findobj,gca,gcf,gco,newplot,班,clf,关闭.的HandleVisibility属性还控制父图形中对象句柄的可见性CurrentObject财产。对象即使不可见也是有效的。如果你可以访问一个对象,你可以设置和获取它的属性,并将它传递给任何操作对象的函数。
得到
findobj
gco
newplot
班
clf
关闭
CurrentObject
类型
“uicontextmenu”
图形对象的类型,返回为“uicontextmenu”.
标签
对象标识符,指定为字符向量或字符串标量。你可以指定一个唯一的标签值作为对象的标识符。当您需要访问代码中的其他地方的对象时,可以使用findobj函数搜索对象标签价值。
用户数据
[]
用户数据,指定为任意数组。指定用户数据可以在应用程序中共享数据。看到在回调之间共享数据为更多的信息。
不建议在R2020a开始
从R2020a开始,使用回调财产的快捷菜单对象不推荐使用。使用ContextMenuOpeningFcn财产的快捷菜单对象。属性值是相同的。
目前还没有取消支持的计划万博1manbetx回调的属性快捷菜单对象。但是,此属性不再出现在调用得到函数在一个快捷菜单对象。
从R2020a开始,使用可见和位置不推荐使用配置上下文菜单在特定位置打开的属性。在应用程序创建uifigure功能,使用开放函数来代替。
开放
目前还没有取消支持的计划万博1manbetx可见和位置的属性快捷菜单对象。但是,这些属性不再出现在调用得到函数在一个快捷菜单对象。
uimenu|uicontextmenu|开放
uimenu
你点击一个链接对应于这个MATLAB命令:
通过在MATLAB命令窗口中输入命令来运行命令。Web浏览器不支持MATLAB命令。万博1manbetx
选择一个网站,在那里获得翻译的内容,并看到当地的活动和优惠。根据您的位置,我们建议您选择:.
你也可以从以下列表中选择一个网站:
选择中国网站(中文或英文)以获得最佳网站性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。
与当地办事处联系