主要内容

uicontextmenu

创建上下文菜单组件

描述

厘米= uicontextmenu控件在当前图中创建上下文菜单并返回快捷菜单对象。如果一个图形不存在,那么MATLAB®调用数字函数来创建一个。

要在图中打开上下文菜单,还必须执行以下步骤:

  • 将上下文菜单分配给同一个图中的UI组件或图形对象。

  • 至少创建一个子节点菜单上下文菜单中的对象。

例子

厘米= uicontextmenu (在指定的父图中创建上下文菜单。属性创建的图形可以是父类uifigure数字函数。

例子

厘米= uicontextmenu (___名称,值用一个或多个名称-值参数指定的属性值创建上下文菜单。使用前一种语法指定名称-值参数。

例子

全部折叠

在UI图中创建一个包含两个菜单项的上下文菜单。属性将上下文菜单分配给图形本身快捷菜单属性快捷菜单对象。要查看上下文菜单,右键单击图形窗口中的任何位置。

FIG = ufigure;Cm = uicontextmenu(图);M1 = uimenu(cm,“文本”“Menu1”);M2 = uimenu(cm,“文本”“Menu2”);fig.ContextMenu = cm;

上下文菜单有两个选项:“Menu1”和“Menu2”

创建带有按钮的UI图。然后,在图中创建一个包含两个菜单项的上下文菜单,并将上下文菜单分配给按钮。要查看上下文菜单,右键单击按钮。

FIG = ufigure;BTN = uibutton(图);Cm = uicontextmenu(图);M1 = uimenu(cm,“文本””选项1”);M2 = uimenu(cm,“文本””选项2”);btn。ContextMenu = cm;

有两个选项的按钮的上下文菜单:“选项1”和“选项2”

为树组件创建上下文菜单。将上下文菜单分配给树中的所有顶级节点。

在当前文件夹中的新脚本中,创建一个UI图。然后,创建具有四个顶级节点和一组嵌套节点的树。

FIG = ufigure;T = uitree(fig,“位置”,[20 200 175 100]);Category1 = uitreenode(t,“文本”“跑步者”);R1 = uitreenode(category1,“文本”“乔”);R2 = uitreenode(category1,“文本”“琳达”);Category2 = uitreenode(t,“文本”“自行车”);C1 = uitreenode(category2,“文本”“Rajeev”);类别3 = uitreenode(t,“文本”“旅行者”);H1 = uitreenode(类别3,“文本”“杰克”);Category4 = uitreenode(t,“文本”“游泳”);S1 = uitreenode(category4,“文本”“洛根”);

树,有四个折叠的顶级节点

创建包含一个菜单项和两个子菜单的上下文菜单,用户可以单击该菜单展开单个树节点或所有树节点。对于每个子菜单,指定MenuSelectedFcn当用户选择菜单选项时执行的回调函数。将相关的app对象作为输入传递给每个函数,以便从回调函数内部访问app数据。

Cm = uicontextmenu(图);M1 = uimenu(cm,“文本”“扩大……”);Sbm1 = uimenu(m1,“文本”“这个节点”...“MenuSelectedFcn”, {@expandSingle,无花果});Sbm2 = uimenu(m1,“文本”“所有节点”...“MenuSelectedFcn”, {@expandAll t});

属性将上下文菜单分配给顶级树节点快捷菜单属性的快捷菜单对象。

category1。ContextMenu = cm;category2。ContextMenu = cm;category3。ContextMenu = cm;category4。ContextMenu = cm;

在文件的底部,定义expandSingle而且expandAll回调函数。定义函数以接受MATLAB传递给所有回调函数的源数据和事件数据。

定义expandSingle函数也接受包含树的UI图对象,并使用CurrentObject属性,以确定单击了哪个树节点以调出上下文菜单。然后,展开该节点。

定义expandAll函数也接受树对象,并展开树中的所有节点。

函数expandSingle(src,event,f) node = f. currentobject;扩大(节点)结束函数expandAll (src、事件、t)扩展(t)结束

保存并运行脚本。右键单击任何顶级树节点以查看上下文菜单。

与“自行车手”节点关联的上下文菜单。“展开”菜单选项高亮显示,有一个子菜单选项“此节点”和“所有节点”。

创建一个上下文菜单,在每次打开命令窗口时打印一条消息。

在传统图形中创建一个线状图。然后,用一个菜单项创建一个上下文菜单,并将其分配给线状图。创建一个ContextMenuOpeningFcn每次上下文菜单打开时在命令窗口中显示输出的回调函数。

F =数字;P =图(1:10);Cm = uicontextmenu(f);M = uimenu(cm,“文本”“Menu1”);厘米。ContextMenuOpeningFcn = @(src,event)disp(“上下文菜单已打开”);p.ContextMenu = cm;

要查看上下文菜单,右键单击绘图线。当上下文菜单打开时,命令窗口还显示消息:打开上下文菜单

带有菜单项“menu u1”的上下文菜单显示在绘图线上。

输入参数

全部折叠

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

名称-值参数

指定可选参数对为Name1 = Value1,…,以=家,在那里的名字参数名称和价值对应的值。名称-值参数必须出现在其他参数之后,但对的顺序无关紧要。

在R2021a之前,使用逗号分隔每个名称和值,并将其括起来的名字在报价。

例子:@myfunction uicontextmenu(“ContextMenuOpeningFcn”)指定myfunction当用户打开上下文菜单时执行的函数。

请注意

这里列出的属性只是一个子集。有关完整列表,请参见快捷菜单的属性

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

  • 一个函数句柄。

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

  • 包含有效MATLAB表达式的字符向量(不推荐)。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属性设置为“关闭”都没有列在孩子们财产。

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

提示

  • 要在运行的应用程序中交互式地显示上下文菜单,它必须:

    • 至少有一个菜单项。

    • 被分配给同一个图形中的UI组件或图形对象。

  • 要以编程方式打开上下文菜单,请使用开放函数。控件创建的图形的子菜单uifigure函数。要显示上下文菜单,它必须至少有一个用uimenu函数。

版本历史

R2006a之前介绍