Menu Properties

Внешний вид и поведение системного меню в uifigure- основанные приложения

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

fig = uifigure;
m = uimenu(fig);
m.Text = 'Open Selection';

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

Меню

развернуть все

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

Избегайте использования этих чувствительных к регистру зарезервированных слов: "значение по умолчанию", "удалите", и "фабрика". Если необходимо использовать зарезервированное слово, то задайте символ обратной косой черты перед словом. Например, задайте "значение по умолчанию" как '\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'.

Режим линии диафрагмы в виде '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 свойство проигнорировано, когда пункт меню:

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

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

Метка Menu окрашивает в виде триплета 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'

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

развернуть все

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

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

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

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

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

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

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

Подсказка в виде вектора символов, массива ячеек из символьных векторов, массива строк или 1D категориального массива. Используйте это свойство отобразить сообщение, когда пользователь наведет указатель на компонент во время выполнения. Подсказка отображается, даже когда компонент отключен. Чтобы отобразить несколько линий текста, задайте массив ячеек из символьных векторов или массив строк. Каждый элемент в массиве становится отдельной линией текста. Если вы задаете это свойство как категориальный массив, MATLAB использует значения в массиве, не полный набор категорий.

Контекстное меню в виде ContextMenu объект создал использование uicontextmenu функция. Используйте это свойство отобразить контекстное меню, когда вы щелкнете правой кнопкой по компоненту.

Коллбэки

развернуть все

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

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

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

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

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

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

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

Примечание

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

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

Функция создания объекта в виде одного из этих значений:

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

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

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

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

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

Установка CreateFcn свойство на существующем компоненте не оказывает влияния.

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

Функция удаления объекта в виде одного из этих значений:

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

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

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

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

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

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

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

развернуть все

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

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

  • Выполняемый обратный вызов — это актуальный на данный момент обратный вызов.

  • Прерывающий обратный вызов — это обратный вызов, который пытается прервать текущий обратный вызов.

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

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

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

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

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

Примечание

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

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

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

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

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

Постановка в очередь коллбэка в виде 'queue' или 'cancel'. BusyAction свойство определяет, как MATLAB обрабатывает выполнение прерываний обратного вызова. Существует два состояния обратного вызова:

  • Выполняемый обратный вызов — это актуальный на данный момент обратный вызов.

  • Прерывающий обратный вызов — это обратный вызов, который пытается прервать текущий обратный вызов.

Каждый раз, когда MATLAB инициирует обратный вызов, этот обратный вызов пытается прервать текущий обратный вызов. Interruptible свойство объекта, владеющего рабочим коллбэком, определяет, разрешено ли прерывание. Если прерывание не разрешено, то BusyAction свойство объекта, владеющего прерыванием обратного вызова, определяет, отбрасывается ли это или вставило очередь. Это возможные значения BusyAction свойство:

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

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

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

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

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

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

Родительский элемент/Дочерний элемент

развернуть все

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

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

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

Чтобы добавить нижестоящее меню в этот список, установите Parent свойство другого Menu возразите против этого Menu объект.

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

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

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

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

развернуть все

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

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

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

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

Если вы работаете в App Designer, создаете публичные или частные свойства в приложении, чтобы осуществлять обмен данными вместо того, чтобы использовать UserData свойство. Для получения дополнительной информации смотрите, Осуществляют обмен данными В рамках Приложений App Designer.

Смотрите также

|

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