本页对应的英文页面已更新,但尚未翻译。 若要查看最新内容,请点击此处访问英文页面。

uicontextmenu

创建上下文菜单

此函数仅用于 GUIDE 或者使用 figure 函数创建的图窗。

说明

示例

c = uicontextmenu 在当前图窗中创建一个上下文菜单,并将 ContextMenu 对象返回为 c。如果图窗不存在,则 MATLAB® 调用 figure 函数以创建一个图窗。

c = uicontextmenu(Name,Value) 创建一个上下文菜单,其中包含使用一个或多个名称-值对组参数指定的属性值。使用该语法可覆盖默认属性值。

示例

c = uicontextmenu(parent) 在指定的父图窗中创建上下文菜单。

注意

单独指定父级并不能使上下文菜单在 UI 中可供访问。您还必须执行以下步骤:

  • 使用 UIContextMenu 属性将上下文菜单分配给一个组件。

  • uicontextmenu 创建至少一个子级 uimenu

有关详细信息,请参阅提示部分。

c = uicontextmenu(parent,Name,Value) 指定上下文菜单的父图窗和一个或多个名称-值对组参数。

示例

全部折叠

为线条对象的 UIContextMenu 属性指定一个值,以将 uicontextmenu 附加到该线条。当用户右键点击线条时,该上下文菜单将可见。例如,创建一个名为 myprogram.m 的程序文件,用该文件创建一个绘图并将一个 uicontextmenu 附加到绘图线条:

function myprogram

    f = figure('WindowStyle','normal');
    ax = axes;
    x = 0:100;
    y = x.^2;

    plotline = plot(x,y);
    c = uicontextmenu;

    % Assign the uicontextmenu to the plot line
    plotline.UIContextMenu = c;

    % Create child menu items for the uicontextmenu
    m1 = uimenu(c,'Label','dashed','Callback',@setlinestyle);
    m2 = uimenu(c,'Label','dotted','Callback',@setlinestyle);
    m3 = uimenu(c,'Label','solid','Callback',@setlinestyle);

        function setlinestyle(source,callbackdata)
            switch source.Label
                case 'dashed'
                    plotline.LineStyle = '--';
                case 'dotted'
                    plotline.LineStyle = ':';
                case 'solid'
                    plotline.LineStyle = '-';
            end
        end
end

当用户右键点击绘图线条时将显示上下文菜单。

从上下文菜单中选择一项可更改线型。

指定任何 uimenuParent 属性的值,以将其转入子菜单。例如,创建一个名为 myprogram2 的程序文件,该文件创建一个上下文菜单,其中包含一个顶级菜单和两个子菜单项:

function myprogram2
    f = figure('WindowStyle','normal');
    c = uicontextmenu(f);

    % Assign the uicontextmenu to the figure
    f.UIContextMenu = c;

    % Create child menu of the uicontextmenu
    topmenu = uimenu('Parent',c,'Label','Change Color');
    
    % Create submenu items
    m1 = uimenu('Parent',topmenu,'Label','Red','Callback',@changecolor);
    m2 = uimenu('Parent',topmenu,'Label','Green','Callback',@changecolor);

    function changecolor(source,callbackdata)
        switch source.Label
            case 'Red'
                f.Color = [1.0 0.80 0.80];
            case 'Green'
                f.Color = [0.80 1.0 0.80];
        end
    end
end

当用户在图窗中右键点击鼠标时,将显示生成的上下文菜单。

从上下文菜单中选择一种颜色可更改窗口的颜色。

输入参数

全部折叠

父图窗,指定为用 figure 创建的 Figure 对象。如果未指定父图窗,则 MATLAB 调用 figure 函数以创建一个图窗来用作父图窗。

名称-值对组参数

示例: 'Callback',@myfunction 即将 myfunction 指定为用户与上下文菜单交互时要执行的函数。

此处所列的属性只是一个子集,要查看完整列表,请参阅 ContextMenu 属性

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

  • 函数句柄。

  • 第一个元素是函数句柄的元胞数组。元胞数组中的后续元素是传递到回调函数的参数。

  • 包含有效 MATLAB 表达式的字符向量(不推荐)。MATLAB 在基础工作区计算此表达式。

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

数据类型: function_handle | cell | char

菜单的子级,返回空的 GraphicsPlaceholder 或一维的 Menu 对象数组。菜单的子级是作为子菜单的其他菜单。

不能使用 Children 属性添加或删除子级。可以使用此属性查看子级列表或对子菜单项重新排序。子级在该数组中的顺序反映了显示的菜单项的顺序。

要向该列表中添加子级,请将子组件的 Parent 属性设置为 uicontextmenu 对象。

HandleVisibility 属性设为 'off' 的对象不会列在 Children 属性中。

提示

当满足以下要求时,可在 UI 中访问上下文菜单:

  • 您使用 UIContextMenu 属性将上下文菜单分配给一个组件。分配的组件必须是与上下文菜单相同的图窗的子级。

  • 您为 uicontextmenu 创建至少一个子级 uimenu

例如:

f = figure;
c = uicontextmenu(f);
% Create a new component and assign the uicontextmenu to it
b = uicontrol(f,'UIContextMenu',c);
% Create a child menu for the uicontextmenu
m = uimenu('Parent',c,'Label','Disable');

在 R2006a 之前推出