Menu Properties

Управляйте внешним видом и поведением в figure- основанные на приложениях

Перечисленные здесь свойства действительны для меню в GUIDE или в приложениях, созданных с figure функция. Если вы используете App Designer или uifigure вместо этого см. раздел Свойств меню». Для получения дополнительной информации см. GUIDE Стратегии миграции.

Меню отображают выпадающие списки опций в верхней части окна приложения. Вызовите uimenu функция для создания меню или добавления подменю к существующему меню. Свойства управляют внешним видом и поведением меню. Используйте запись через точку для ссылки на определенный объект и свойство.

f = figure;
m = uimenu(f);
m.Text = 'Open Selection';

Меню

расширить все

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

Избегайте использования этих зарезервированных слов с учетом регистра: «по умолчанию», «удалить» и «фабрика». Если необходимо использовать зарезервированное слово, задайте символ обратной косой черты перед словом. Для образца задайте «по умолчанию» следующим '\default'.

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

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

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

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

'O&pen Selection'

'&Save && Go'

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

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

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

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

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

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

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

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

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

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

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

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

    • Имеет Visible значение свойства установлено в 'on'.

Если элемент меню вложен в контекстное меню, то Accelerator будет работать только, если контекстное меню находится в особом внимании.

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

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

Примечание

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

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

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

Примечание

The Checked свойство игнорируется, когда элемент меню:

  • Меню верхнего уровня элемента

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

Цвет метки меню, заданный как триплет RGB, шестнадцатеричный код цвета или один из опций, перечисленных в таблице.

Триплеты RGB и шестнадцатеричные цветовые коды полезны для определения пользовательских цветов.

  • Триплет RGB представляет собой трехэлементный вектор-строку, элементы которого определяют интенсивность красных, зеленых и синих компонентов цвета. Интенсивность должна быть в области значений [0,1]; например, [0.4 0.6 0.7].

  • Шестнадцатеричный код цвета - это вектор символов или строковый скаляр, который начинается с хэш-символа (#), за которым следуют три или шесть шестнадцатеричных цифр, которые могут варьироваться от 0 на F. Значения не зависят от регистра. Таким образом, цветовые коды '#FF8800', '#ff8800', '#F80', и '#f80' являются эквивалентными.

Кроме того, вы можете задать имена некоторых простых цветов. В этой таблице перечислены именованные опции цвета, эквивалентные триплеты RGB и шестнадцатеричные цветовые коды.

Название цветаКраткое имяТриплет RGBШестнадцатеричный цветовой кодВнешность
'red''r'[1 0 0]'#FF0000'

'green''g'[0 1 0]'#00FF00'

'blue''b'[0 0 1]'#0000FF'

'cyan' 'c'[0 1 1]'#00FFFF'

'magenta''m'[1 0 1]'#FF00FF'

'yellow''y'[1 1 0]'#FFFF00'

'black''k'[0 0 0]'#000000'

'white''w'[1 1 1]'#FFFFFF'

Вот триплеты RGB и шестнадцатеричные цветовые коды для цветов по умолчанию MATLAB® использует на многих типах графиков.

Триплет RGBШестнадцатеричный цветовой кодВнешность
[0 0.4470 0.7410]'#0072BD'

[0.8500 0.3250 0.0980]'#D95319'

[0.9290 0.6940 0.1250]'#EDB120'

[0.4940 0.1840 0.5560]'#7E2F8E'

[0.4660 0.6740 0.1880]'#77AC30'

[0.3010 0.7450 0.9330]'#4DBEEE'

[0.6350 0.0780 0.1840]'#A2142F'

Метка меню, заданная как вектор символов или строковый скаляр. Это свойство задает метку, которая появляется в меню (или элементе меню).

Примечание

Использование Label свойство не рекомендуется. Его можно удалить в будущем релизе. Используйте Text вместо этого свойство.

Относительное положение меню, заданное как скалярное целое значение. Значение Position свойство указывает размещение на панели меню или в меню. Меню верхнего уровня появляются слева направо на панели меню в соответствии со значением их Position свойство, с 1 представление самой левой позиции. Отдельные элементы в заданном меню появляются сверху вниз в соответствии со значением их Position свойство, с 1 представляющий самую высокую позицию.

Примечание

Использование Position свойство не рекомендуется. Его можно удалить в будущем релизе. Для изменения порядка элементов меню используйте Children свойство или uistack вместо этого функция.

Интерактивность

расширить все

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

  • 'on' - Отобразите объект.

  • 'off' - Скрыть объект, не удаляя его. Вы по-прежнему можете получить доступ к свойствам невидимого компонента пользовательского интерфейса.

Чтобы ускорить запуск приложения, установите Visible свойство к 'off' для всех компонентов пользовательского интерфейса, которые не должны появляться при запуске.

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

  • Если вы задаете это свойство равным 'on'пользователь приложения может взаимодействовать с компонентом.

  • Если вы задаете это свойство равным 'off'компонент появляется затемненным, что указывает на то, что пользователь приложения не может с ним взаимодействовать, и что он не будет запускать коллбэк.

Установка этого свойства не влияет на объекты этого типа.

Коллбэки

расширить все

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

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

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

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

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

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

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

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

Примечание

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

Функция создания компонентов, заданная в качестве одного из следующих значений:

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

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

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

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

Это свойство задает функцию обратного вызова, которая должна выполняться, когда MATLAB создает компонент. MATLAB инициализирует все значения свойств компонентов перед выполнением CreateFcn коллбэк. Если вы не задаете CreateFcn свойство, затем MATLAB выполняет функцию создания по умолчанию.

Используйте gcbo функция в вашем CreateFcn код для получения объекта компонента, который создается.

Установка CreateFcn свойство существующего объекта компонента не имеет эффекта.

Функция удаления компонента, заданная в качестве одного из следующих значений:

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

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

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

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

The DeleteFcn свойство задает функцию обратного вызова, которая должна выполняться, когда MATLAB удаляет компонент (для примера, когда пользователь закрывает окно). MATLAB выполняет DeleteFcn коллбэк перед уничтожением свойств объекта компонента. Если вы не задаете DeleteFcn свойство, затем MATLAB выполняет функцию удаления по умолчанию.

Используйте gcbo функция в вашем DeleteFcn код для получения удаляемого объекта компонента.

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

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

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

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

Примечание

Использование Callback свойство не рекомендуется. Его можно удалить в будущем релизе. Использование MenuSelectedFcn вместо этого.

Контроль выполнения обратного вызова

расширить все

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

The Interruptible свойство определяет, можно ли прерывать выполняемый коллбэк. Существует два состояния коллбэка:

  • Обратный коллбэк running - это актуальный на данный момент коллбэк.

  • Обратный коллбэк interrupting - это коллбэк, который пытается прервать текущий коллбэк.

Всякий раз, когда MATLAB вызывает коллбэк, этот коллбэк пытается прервать текущий коллбэк (если он существует). The Interruptible свойство объекта, имеющего текущий коллбэк, определяет, разрешено ли прерывание:

  • Значение 'on' позволяет другим коллбэкам прерывать коллбэки объекта. Прерывание происходит в следующей точке, где MATLAB обрабатывает очередь, например, когда есть drawnow, figure, getframe, waitfor, или pause.

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

    • Если текущий коллбэк не содержит одну из этих команд, MATLAB завершает выполнение коллбэка без прерывания.

  • Значение 'off' блокирует все попытки прерывания. The BusyAction свойство объекта, имеющего прерывание обратного вызова, определяет, отменяется ли прерывание обратного вызова или помещается в очередь.

Примечание

Прерывание и выполнение коллбэка происходят по-разному в таких ситуациях:

  • Если прерывание обратного вызова является DeleteFcn, CloseRequestFcn, или SizeChangedFcn коллбэк, тогда прерывание происходит независимо от Interruptible значение свойства.

  • Если текущий коллбэк выполняющегося в данного момента, waitfor function, тогда прерывание происходит независимо от Interruptible значение свойства.

  • Timer объекты выполняются в соответствии с расписанием независимо от Interruptible значение свойства.

  • MATLAB не сохраняет состояние свойств или отображения при прерывании. Для примера, объект, возвращенный gca или gcf команда может измениться при выполнении другого коллбэка.

См. пример выполнения прерывания обратного вызова, показывающий, как Interruptible и BusyAction свойства влияют на поведение программы.

Организация очереди коллбэков задается как 'queue' (по умолчанию) или 'cancel'. The BusyAction свойство определяет, как MATLAB обрабатывает выполнение прерываний обратного вызова. Существует два состояния коллбэка:

  • Обратный коллбэк running - это актуальный на данный момент коллбэк.

  • Обратный коллбэк interrupting - это коллбэк, который пытается прервать текущий коллбэк.

The BusyAction свойство источника прерывания обратного вызова определяет, как MATLAB обрабатывает его выполнение. The BusyAction свойство имеет следующие значения:

  • 'queue' - Поместите прерывание обратного вызова в очередь вызовов, подлежащих обработке после концов обратного коллбэка.

  • 'cancel' - Не выполнять прерывание обратного вызова.

Всякий раз, когда MATLAB вызывает коллбэк, этот коллбэк всегда пытается прервать выполнение текущего коллбэка. The Interruptible свойство объекта, чей коллбэк выполняется, определяет, разрешено ли прерывание. Если Interruptible установлено в:

  • on - Прерывание происходит в следующей точке, где MATLAB обрабатывает очередь. Это значение по умолчанию.

  • off - The BusyAction свойство (объекта, имеющего прерывающий обратный вызов) определяет, будет ли MATLAB ставить в очередь или игнорировать прерывание обратного вызова.

См. пример выполнения прерывания обратного вызова, показывающий, как BusyAction и Interruptible свойства влияют на поведение программы.

Это свойство доступно только для чтения.

Статус удаления, возвращенный как логическое значение включения/выключения типа matlab.lang.OnOffSwitchState.

MATLAB устанавливает BeingDeleted свойство к 'on' когда DeleteFcn коллбэк начинает выполняться. The BeingDeleted свойство остается установленным на 'on' пока объект компонента не перестанет существовать.

Проверьте значение BeingDeleted свойство, чтобы убедиться, что объект не будет удален до запроса или изменения.

Это свойство не влияет на объекты этого типа.

Родитель/ребенок

расширить все

Это свойство доступно только для чтения.

Родительский объект, заданный как Figure, ContextMenu, или Menu объект. Можно переместить элемент меню в другое окно или переместить его в другое меню, установив это свойство.

Дети меню, возвращенные как пустые GraphicsPlaceholder или 1-D массив Menu объекты. Дочерними элементами меню являются другие меню, которые функционируют как подменю.

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

Чтобы добавить дочерний элемент в этот список, установите Parent свойство дочернего компонента к Menu объект.

Объекты с HandleVisibility значение свойства установлено в 'off' не указаны в Children свойство.

Видимость указателя на объект, заданная как 'on', 'callback', или 'off'.

Это свойство контролирует видимость указателя на объект в его родительский список дочерних элементов. Когда указатель не отображается в его родительский список дочерних элементов, он не возвращается с помощью функций, которые получают указатели, просматривая иерархию объектов или запрашивая свойства указателя. Эти функции включают get, findobj, gca, gcf, gco, newplot, cla, clf, и close. The HandleVisibility свойство также контролирует видимость указателя на объект в родительском рисунке CurrentObject свойство. Указатели все еще действительны, даже если они не видны. Если вы можете получить доступ к объекту, можно задать и получить его свойства, и передать его в любую функцию, которая работает с объектами.

Значение HandleVisibilityОписание
'on'Указатель на объект всегда отображается.
'callback'Указатель на объект виден из коллбэков или функций, вызываемых коллбэками, но не из функций, инициируемых из командной строки. Эта опция блокирует доступ к объекту в командной строке, но позволяет функциям обратного вызова обращаться к нему.
'off'Указатель на объект всегда невидим. Эта опция используется для предотвращения непреднамеренных изменений пользовательского интерфейса другой функцией. Установите HandleVisibility на 'off' временно скрыть указатель во время выполнения этой функции.

Установите корень графики ShowHiddenHandles свойство к 'on' сделать все указатели видимыми, независимо от их HandleVisibility значение. Эта настройка не влияет на их HandleVisibility значения.

Идентификаторы

расширить все

Это свойство доступно только для чтения.

Тип графического объекта, возвращенный как 'uimenu'.

Идентификатор объекта, заданный как вектор символов или строковый скаляр. Можно задать уникальное Tag значение, которое служит идентификатором для объекта. Когда вам нужен доступ к объекту в другом месте вашего кода, вы можете использовать findobj функция для поиска объекта на основе Tag значение.

Пользовательские данные, заданные как любой массив. Определение UserData может быть полезным для обмена данными в приложениях См. Раздел «Обмен данными между коллбэками» для получения дополнительной информации.

Представлено до R2006a
Для просмотра документации необходимо авторизоваться на сайте