Main Content

本页翻译不是最新的。点击此处可查看最新英文版本。

uimenu

创建菜单或菜单项

说明

m = uimenu 在当前图窗中创建菜单,并返回 Menu 对象。如果没有可用的图窗,MATLAB® 将调用 figure 函数创建一个图窗。

示例

m = uimenu(Name,Value) 使用一个或多个名称-值对组参数指定菜单属性值。

m = uimenu(parent) 在指定的父容器中创建菜单。父容器可以是使用 figureuifigure 函数创建的图窗,也可以是另一个 Menu 对象。uimenu 的属性值略有不同,具体取决于该 App 是使用 figure 还是 uifigure 函数创建的。有关详细信息,请参阅名称-值参数

示例

m = uimenu(parent,Name,Value) 指定父容器和一个或多个属性值。

示例

全部折叠

创建一个显示默认菜单栏的图窗。添加一个菜单和一个菜单项。

f = figure('Toolbar','none');
m = uimenu('Text','Options');
mitem = uimenu(m,'Text','Reset');

A figure window with a menu bar. The menu items are "File", "Edit", "View", "Insert", "Tools", "Desktop", "Window", "Help", and "Options". The "Options" item is selected, and displays a drop-down with a "Reset" option.

将具有键盘快捷方式的菜单项添加到菜单栏,并定义选择该菜单项时执行的回调。

首先,创建一个名为 importmenu.m 的程序文件。在该程序文件中:

  • 创建一个图窗。

  • 添加一个名为 Import 的菜单。通过将 '&Import' 指定为文本标签,为菜单创建助记键键盘快捷方式。

  • 创建一个菜单项并指定助记键和快捷键键盘快捷方式。

  • 定义当用户点击菜单项或使用助记键或快捷键键盘快捷方式时执行的 MenuSelectedFcn 回调。

运行程序文件。

function importmenu
fig = uifigure;
m = uimenu(fig,'Text','&Import');
 
mitem = uimenu(m,'Text','&Text File');
mitem.Accelerator = 'T';
mitem.MenuSelectedFcn = @MenuSelected;
 
    function MenuSelected(src,event)
        file = uigetfile('*.txt');
    end
 
end

A menu bar with an "Import" item with a "Text File" sub-item. The "I" in "Import" and the "T" in "Text File" are underlined. The Ctrl+T keyboard shortcut is displayed to the right of the "Text File" item.

您可以使用键盘以下列方式与菜单和菜单项交互:

  • 通过按 Alt+I 选择 Import 菜单。

  • 选择 Text File 菜单项,并通过按 Alt+I+T 执行回调。

  • 选择 Text File 菜单项,并通过使用快捷键 Ctrl+T 执行回调。

当您选择 Text File 菜单项时,“选择要打开的文件”对话框打开,扩展名字段限定为文本文件。

File dialog box. The file extension filer drop-down list has the option "(*.txt.)" selected.

创建一个选中菜单项,可以选中或清除该菜单项以在坐标区上显示网格。共享具有普通按钮的回调,这样按下该普通按钮也可以显示或隐藏网格。

首先,创建一个名为 plotOptions.m 的程序文件。在该程序文件中:

  • 创建一个图窗,其中包含一个普通按钮和用于显示网格的坐标区。

  • 添加一个菜单和一个具有助记键的菜单项。指定该菜单项已选中。

  • 定义一个 MenuSelectedFcn 回调,当用户与菜单项交互时该回调会隐藏或显示网格。

  • 定义一个 ButtonPushedFcn,它与该菜单项使用相同的回调函数。

运行程序文件。

function plotOptions
fig = uifigure;
ax = uiaxes(fig);
grid(ax);
btn = uibutton(fig,'Text','Show Grid');
btn.Position = [155 325 100 20];

m = uimenu(fig,'Text','&Plot Options');
mitem = uimenu(m,'Text','Show &Grid','Checked','on');
mitem.MenuSelectedFcn = @ShowGrid;
btn.ButtonPushedFcn = @ShowGrid;

    function ShowGrid(src,event)
        grid(ax);
        if strcmp(mitem.Checked,'on')
            mitem.Checked = 'off';
        else
            mitem.Checked = 'on';
        end
    end
end

An app with a menu bar, button, and set of axes. The "Show Grid" menu item has a checked check box to the left of the text.

输入参数

全部折叠

父容器,指定为使用 figureuifigure 函数创建的 Figure 对象、另一个 ContextMenu 对象或 Menu 对象。如果未指定父容器,则 MATLAB 调用 figure 以创建一个父容器,并将菜单放在该图窗的菜单栏中。将父容器指定为一个现有 Menu 对象,以将菜单项添加到菜单,或者嵌套菜单项。

名称-值参数

将可选的参数对组指定为 Name1=Value1,...,NameN=ValueN,其中 Name 是参数名称,Value 是对应的值。名称-值参数必须出现在其他参数之后,但参数对组的顺序无关紧要。

在 R2021a 之前,使用逗号分隔每个名称和值,并用引号将 Name 引起来。

示例: m = uimenu('Text','Open') 创建菜单将其标签设置为 'Open'

注意

此处所列的属性只是可用属性中的一部分。有关完整列表,请参阅 Menu 属性

菜单标签,指定为字符向量或字符串标量。此属性指定显示在菜单(或菜单项)上的标签。

避免使用以下区分大小写的保留字:'default''remove''factory'。如果必须使用保留字,请在单词前面指定反斜杠字符。例如,将 'default' 指定为 '\default'

您可以在标签文本中使用“与”(&) 字符来指定助记键盘快捷方式 (Alt+mnemonic)。按下 Alt 键时,“与”符号后的字符在菜单中带下划线显示。您可以通过按住 Alt 键并键入显示的字符来选择菜单项。

要使用助记键,您必须为在 App 中定义的所有菜单和菜单项指定助记键。如果您只为部分菜单或菜单项定义助记键,按 Alt 键不会有任何效果。

下表显示了一些示例:

文本值具有助记键提示的菜单标签
'&Open Selection'

Open Selection menu label. The "O" in "Open" is underlined.

'O&pen Selection'

Open Selection menu label. The "p" in "Open" is underlined.

'&Save && Go'

Open Selection menu label. The "S" in "Save & Go" is underlined.

键盘快捷方式,指定为一个字符或包含一个字符的字符串。使用此属性定义用于选择菜单项的键盘快捷方式。

示例: mitem.Accelerator = "H"

指定快捷键值后,用户可以通过按下字符和另一个键来选择菜单项,而不是用鼠标选择菜单项。按键顺序是针对特定平台的。

  • Windows® 系统:Ctrl+accelerator

  • Macintosh 系统:Command+accelerator

  • Linux® 系统:Ctrl+accelerator

使用快捷键时要牢记的事项:

  • 输入快捷键序列时,App 窗口必须已获得焦点。

  • 快捷键不能用于顶级菜单。

  • 仅当菜单项符合所有以下条件时,快捷键才能正常工作。

    • 它不包含任何子菜单项。

    • 它执行回调函数。

    • 它的 Visible 属性设置为 'on'

    • 其加速值尚未分配给同一 App 中的不同菜单项。

选定菜单时触发的回调,指定为下列值之一:

  • 函数句柄。

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

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

此回调根据菜单项的位置和交互类型进行响应:

  • 左键点击菜单将展开该菜单并触发其回调。

  • 当任一菜单处于展开状态时,如果将光标悬停在其他任何父级菜单(或顶级菜单)上,将会展开该菜单并触发其回调。

注意

请勿使用回调动态更改菜单项。在回调中删除、添加和替换菜单项可能会生成空菜单。此时,可以使用 Visible 属性隐藏或显示菜单项。您还可以通过设置 Enable 属性来启用和禁用菜单项。要完全重新填充菜单项,请在回调外删除这些菜单项并重新创建。

有关编写回调的详细信息,请参阅App 设计工具中的回调

分隔线模式,指定为 'off''on',或者指定为数值或逻辑值 1 (true) 或 0 (false)。值 'on' 等效于 true'off' 等效于 false。因此,您可以使用此属性的值作为逻辑值。该值存储为 matlab.lang.OnOffSwitchState 类型的 on/off 逻辑值。

将此属性设置为 'on' 会在菜单项上方绘制一条分隔线。

注意

当菜单项是顶级菜单项时,将忽略 Separator 属性。

菜单复选标记指示符,指定为 'off''on',或者指定为数值或逻辑值 1 (true) 或 0 (false)。值 'on' 等效于 true'off' 等效于 false。因此,您可以使用此属性的值作为逻辑值。该值存储为 matlab.lang.OnOffSwitchState 类型的 on/off 逻辑值。

将此属性设置为 'on' 会在相应菜单项旁边放置一个复选标记。将此属性设置为 'off' 可移除复选标记。可使用此功能显示启用或禁用应用程序功能的菜单项的状态。

注意

当菜单项是以下项时,将忽略 Checked 属性:

  • 顶级菜单项

  • 包含一个或多个子菜单项的菜单项

版本历史记录

在 R2006a 之前推出