uimenu

Создать меню или пункты меню

Описание

m = uimenu создает меню в текущей фигуре и возвращает Menu объект. Если нет никакой доступной фигуры, MATLAB® вызывает figure функция, чтобы создать ту.

пример

m = uimenu(Name,Value) задает значения свойства меню с помощью одного или нескольких аргументов пары "имя-значение".

m = uimenu(parent) создает меню в заданном родительском контейнере. Родительский контейнер может быть фигурой, созданной с любым figure или uifigure функция или другой Menu объект. Значения свойств для uimenu варьируйтесь немного в зависимости от того, создано ли приложение с 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.

Можно взаимодействовать с пунктом меню и пунктом меню, с помощью клавиатуры, следующими способами:

  • Выберите меню Import путем нажатия Alt+I.

  • Выберите пункт меню Text File и выполните коллбэк путем нажатия Alt+I+T.

  • Выберите пункт меню Text File и выполните коллбэк при помощи акселератора Ctrl+T.

Когда вы выбираете пункт меню Text File, диалоговое окно Select File to Open открывается дополнительным полем, отфильтрованным к текстовым файлам.

Создайте проверенный пункт меню, который может быть выбран или очищен, чтобы показать сетку в осях. Совместно используйте коллбэк с кнопкой так, чтобы продвижение его также показало или скрыло сетку.

Во-первых, создайте программный файл под названием 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.

Входные параметры

свернуть все

Родительский контейнер в виде Figure объект, созданный с любым figure или uifigure функция, другой Menu объект или ContextMenu объект. Если вы не задаете родительский контейнер, то MATLAB вызывает figure создать один, и места меню в панели меню той фигуры. Задайте родительский элемент как существующий Menu объект добавить пункты меню в меню или вложить пункты меню.

Аргументы name-value

Задайте дополнительные разделенные запятой пары Name,Value аргументы. Name имя аргумента и Value соответствующее значение. Name должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.

Пример: m = uimenu('Text','Open') создает меню и устанавливает его метку на 'Open'.

Примечание

Свойства, перечисленные здесь, являются подмножеством доступных свойств. Для полного списка смотрите Свойства меню.

Метка Menu в виде вектора символов или строкового скаляра. Это свойство задает метку, которая появляется на пункте меню или пункте меню.

Избегайте использования этих чувствительных к регистру зарезервированных слов: 'default'Удаление, и 'factory'. Если необходимо использовать зарезервированное слово, то задайте символ обратной косой черты перед словом. Например, задайте 'default' как '\default'.

Можно задать мнемоническую горячую клавишу (Alt+ mnemonic) при помощи амперсанда (&) символа в тексте для метки. Символ, который следует за амперсандом, кажется подчеркнутым в меню, когда Alt нажимается. Можно выбрать пункт меню путем удержания клавиши Alt и ввода показанного символа.

Чтобы использовать мнемонику, необходимо задать мнемосхему для всех меню и пунктов меню, которые вы задаете в приложении. Если вы задаете мнемонику только для некоторых меню или пунктов меню, нажимание клавиши Alt не оказывает влияния.

Таблица показывает некоторые примеры:

Текстовое значениеМетка меню с мнемоническими подсказками
'&Open Selection'

'O&pen Selection'

'&Save && Go'

Горячая клавиша в виде символа. Используйте это свойство задать горячую клавишу для выбора пункта меню.

Пример: mitem.Accelerator = 'H'

Определение значения акселератора позволяет пользователям выбрать пункт меню путем нажатия символа и другого ключа, вместо того, чтобы использовать мышь. Сочетание клавиш является конкретной платформой.

  • Windows® системы: Ctrl+ accelerator

  • Системы Macintosh: Command+ accelerator

  • Linux® системы: Ctrl+ accelerator

Вещи иметь в виду при использовании акселераторов:

  • Окно приложения должно быть в особом внимании при вводе последовательности сочетания клавиш.

  • Акселераторы не могут использоваться в меню верхнего уровня.

  • Акселераторы только работают, когда пункт меню соответствует всем этим критериям.

    • Это не содержит элементов подменю.

    • Это выполняет функцию обратного вызова.

    • Это имеет Visible набор свойств к 'on'.

Меню выбрало коллбэк в виде одного из этих значений:

  • Указатель на функцию.

  • Массив ячеек, в котором первый элемент является указателем на функцию. Последующие элементы массива ячеек являются аргументами, которые передаются в функцию обратного вызова.

  • Вектор символов, содержащий допустимое выражение MATLAB (не рекомендуемый). MATLAB оценивает это выражение в базовом рабочем пространстве.

Коллбэк отвечает в зависимости от местоположения пункта меню и типа взаимодействия:

  • Щелчок левой кнопкой по меню расширяет то меню и инициировал его коллбэк.

  • В то время как любое меню расширено, наведя, любое другое родительское меню (или меню верхнего уровня) расширяет то меню и инициировало его коллбэк.

Примечание

Не используйте коллбэк, чтобы динамически изменить пункты меню. Удаление, добавляя, и заменяющий пункты меню в коллбэке может привести к пустому меню. Вместо этого используйте Visible свойство к пунктам меню hide или show. Можно также включить и отключить пункты меню путем установки Enable свойство. Чтобы полностью повторно заполнить пункты меню, удалите и создайте их вне коллбэка.

Для получения дополнительной информации о записи коллбэков, смотрите Коллбэки Записи в App Designer.

Режим линии диафрагмы в виде 'off' или 'on', или как числовой или логический 1 TRUE) или 0 ложь). Значение 'on' эквивалентно true, и 'off' эквивалентно false. Таким образом можно использовать значение этого свойства как логическое значение. Значение хранится как логическое значение включения - выключения типа matlab.lang.OnOffSwitchState.

Установка этого свойства к 'on' чертит разделительную линию выше пункта меню.

Примечание

Separator свойство проигнорировано, когда пункт меню является пунктом меню верхнего уровня.

Контрольный индикатор меню в виде 'off' или 'on', или как числовой или логический 1 TRUE) или 0 ложь). Значение 'on' эквивалентно true, и 'off' эквивалентно false. Таким образом можно использовать значение этого свойства как логическое значение. Значение хранится как логическое значение включения - выключения типа matlab.lang.OnOffSwitchState.

Установка этого свойства к 'on' помещает галочку рядом с соответствующим пунктом меню. Установка его к 'off' удаляет галочку. Можно использовать эту функцию, чтобы показать состояние пунктов меню, которые включают или отключают функциональность в приложении.

Примечание

Checked свойство проигнорировано, когда пункт меню:

  • Пункт меню верхнего уровня

  • Пункт меню, который содержит один или несколько элементов нижестоящего меню

Представлено до R2006a