主要内容

快捷菜单的属性

控制上下文菜单的外观和行为

上下文菜单是当您右键单击图形对象或UI组件时出现的菜单。使用uicontextmenu函数创建上下文菜单并设置属性。通过更改属性值,可以修改上下文菜单的外观和行为。使用点符号来引用特定的上下文菜单对象和属性。方法创建的图形可以父化上下文菜单uifigure数字函数。

FIG = ufigure;Cm = uicontextmenu(图);m = uimenu(cm,'Text','Go To File');fig.ContextMenu = cm;

回调

全部展开

上下文菜单打开回调函数,指定为以下值之一:

  • 一个函数句柄。

  • 第一个元素为函数句柄的单元格数组。单元格数组中的后续元素是传递给回调函数的参数。

  • 包含有效MATLAB的字符向量®表达式(不推荐)。MATLAB在基本工作空间中计算这个表达式。

有关将回调属性值指定为函数句柄、单元格数组或字符向量的详细信息,请参见指定回调函数

对象创建函数,指定为以下值之一:

  • 函数处理。

  • 单元格数组,其中第一个元素是函数句柄。单元格数组中的后续元素是传递给回调函数的参数。

  • 包含有效MATLAB表达式的字符向量(不推荐)。MATLAB在基本工作空间中计算这个表达式。

有关将回调指定为函数句柄、单元格数组或字符向量的详细信息,请参见应用程序设计器中的回调

此属性指定在MATLAB创建对象时执行的回调函数。函数执行之前,MATLAB初始化所有属性值CreateFcn回调。如果没有指定CreateFcn属性,然后MATLAB执行默认的创建函数。

设置CreateFcn属性在现有组件上不起作用。

如果将此属性指定为函数句柄或单元格数组,则可以使用回调函数的第一个参数访问正在创建的对象。否则,使用gcbo函数来访问对象。

对象删除函数,指定为以下值之一:

  • 函数处理。

  • 单元格数组,其中第一个元素是函数句柄。单元格数组中的后续元素是传递给回调函数的参数。

  • 包含有效MATLAB表达式的字符向量(不推荐)。MATLAB在基本工作空间中计算这个表达式。

有关将回调指定为函数句柄、单元格数组或字符向量的详细信息,请参见应用程序设计器中的回调

此属性指定在MATLAB删除对象时执行的回调函数。MATLAB执行DeleteFcn在销毁对象的属性之前。如果没有指定DeleteFcn属性,然后MATLAB执行默认删除函数。

如果将此属性指定为函数句柄或单元格数组,则可以使用回调函数的第一个参数访问正在删除的对象。否则,使用gcbo函数来访问对象。

回调执行控制

全部展开

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

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

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

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

MATLAB在执行处理回调队列的命令时确定回调中断行为。这些命令包括drawnow数字uifiguregetframe等待,暂停

如果正在运行的回调不包含这些命令之一,则不会发生中断。MATLAB首先完成运行回调的执行,然后再执行中断回调。

如果正在运行的回调包含这些命令之一,则可中断属性决定是否发生中断:

  • 如果的值可中断“关闭”,则不发生中断。相反,BusyAction属性确定中断回调是被丢弃还是添加到回调队列。

  • 如果的值可中断“上”,则中断。下一次MATLAB处理回调队列时,它将停止正在运行的回调的执行,并执行中断的回调。中断回调完成后,MATLAB继续执行正在运行的回调。

请注意

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

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

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

  • 如果中断回调属于计时器对象,则回调函数将根据调度执行,而不管可中断属性值。

请注意

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

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

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

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

BusyAction属性仅在满足以下两个条件时确定回调排队行为:

在这些条件下,BusyAction拥有中断回调的对象的属性决定了MATLAB如何处理中断回调。的可能值BusyAction属性:

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

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

此属性是只读的。

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

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

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

父/子

全部展开

父对象,指定为数字属性创建的对象uifigure数字函数。如果没有指定父图形,则MATLAB调用数字函数创建一个作为父节点的节点。

你可以移动快捷菜单通过将此属性设置为目标,将对象设置为不同的图形数字对象。

上下文菜单的子菜单,返回为空GraphicsPlaceholder或者向量菜单对象。

属性不能添加或删除子元素孩子们财产。使用此属性可查看子菜单项的列表或重新排序子菜单项。此数组中的子元素的顺序反映了菜单项在打开的上下文菜单中出现的相反顺序。

例如,这段代码创建了三个上下文菜单。当你在运行的应用程序中打开上下文菜单时,Menu1显示为第一个菜单选项。

FIG = ufigure;Cm = uicontextmenu(图);M1 = uimenu(cm,“文本”“Menu1”);M2 = uimenu(cm,“文本”“Menu2”);M3 = uimenu(cm,“文本”“Menu3”);fig.ContextMenu = cm;
包含三个菜单项的上下文菜单。

厘米。孩子们以相反的顺序返回菜单项列表。

厘米。孩子们
ans = 3×1菜单数组:菜单(Menu3)菜单(Menu2)菜单(Menu1)

对象具有HandleVisibility属性设置为“关闭”都没有列在孩子们财产。

要将子元素添加到此列表中,请设置他人财产菜单反对这个快捷菜单对象。

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

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

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

标识符

全部展开

此属性是只读的。

图形对象的类型,返回为“uicontextmenu”

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

用户数据,指定为任意数组。指定用户数据对于应用程序内的数据共享非常有用。看到在回调之间共享数据获取更多信息。

版本历史

R2006a之前介绍

全部展开

另请参阅

||

Baidu
map