Управляйте внешним видом и поведением меню
Свойства, перечисленные здесь, допустимы для меню в GUIDE или в приложениях, созданных с функцией figure
. Если вы используете App Designer или функцию uifigure
, смотрите Свойства меню вместо этого. Для получения дополнительной информации см. Мигрирующие Приложения GUIDE к App Designer.
Меню отображают выпадающие списки опций наверху окна приложения. Вызовите функцию uimenu
, чтобы создать меню или добавить подменю в существующее меню. Свойства управляют внешним видом и поведением меню. Используйте запись через точку, чтобы относиться к конкретному объекту и свойству.
f = figure; m = uimenu(f); m.Text = 'Open Selection';
Text
— MenuМетка Menu, заданная как вектор символов или скаляр строки. Это свойство задает метку, которая появляется на пункте меню или пункте меню.
Избегайте использования этих чувствительных к регистру зарезервированных слов: "значение по умолчанию", "удалите", и "фабрика". Если необходимо использовать зарезервированное слово, то задайте символ наклонной черты влево перед словом. Например, задайте "значение по умолчанию" как '\default'
.
Можно задать мнемоническую горячую клавишу (Alt+ mnemonic
) при помощи амперсанда (&) символа в тексте для метки. Символ, который следует за амперсандом, кажется подчеркнутым в меню, когда Alt нажимается. Можно выбрать пункт меню путем удержания клавиши Alt и ввода показанного символа.
Чтобы использовать мнемонику, необходимо задать мнемосхему для всех меню и пунктов меню, которые вы задаете в приложении. Если вы задаете мнемонику только для некоторых меню или пунктов меню, нажимание клавиши Alt не имеет никакого эффекта. Мнемоника не может использоваться в меню или пунктах меню в контекстном меню.
Таблица показывает некоторые примеры:
Текстовое значение | Метка меню с мнемоническими подсказками |
---|---|
'&Open Selection' |
|
'O&pen Selection' |
|
'&Save && Go' |
|
Accelerator
— Горячая клавишаГорячая клавиша, заданная как символ. Используйте это свойство задать горячую клавишу для выбора пункта меню.
Пример: mitem.Accelerator = 'H'
Определение значения акселератора позволяет пользователям выбрать пункт меню путем нажатия символа и другого ключа, вместо того, чтобы использовать мышь. Сочетание клавиш является конкретной платформой.
Системы Windows®: Ctrl+ accelerator
Системы Macintosh: Command+ accelerator
Системы Linux®: Ctrl+ accelerator
Вещи иметь в виду при использовании акселераторов:
Окно приложения должно быть в особом внимании при вводе последовательности сочетания клавиш.
Акселераторы не могут использоваться в меню верхнего уровня.
Акселераторы только работают, когда пункт меню соответствует всем этим критериям.
Это не содержит элементов подменю.
Это выполняет функцию обратного вызова.
Это имеет набор свойств Visible
к 'on'
.
Если пункт меню будет вложен в контекстном меню, то акселератор будет только работать, если контекстное меню будет в особом внимании.
Separator
— Строка разделителя выше пункта меню'off'
(значение по умолчанию) | 'on'
Строка разделителя выше пункта меню, заданного как 'off'
или 'on'
. Установка этого свойства к 'on'
чертит разделительную линию выше пункта меню.
Свойство Separator
проигнорировано, когда пункт меню является пунктом меню верхнего уровня.
Checked
— Контрольный индикатор меню'off'
(значение по умолчанию) | 'on'
Контрольный индикатор меню, заданный как 'off'
или 'on'
. Установка этого свойства к 'on'
помещает галочку рядом с соответствующим пунктом меню. Установка его к 'off'
удаляет галочку. Можно использовать эту функцию, чтобы показать состояние пунктов меню, которые включают или отключают функциональность в приложении.
Свойство Checked
проигнорировано, когда пункт меню:
Пункт меню верхнего уровня
Пункт меню, который содержит один или несколько элементов нижестоящего меню
ForegroundColor
— Menu[0 0 0]
(значение по умолчанию) | триплет RGB | шестнадцатеричный цветовой код | 'r'
| 'g'
| 'b'
|...Цвет метки 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' |
Label
— Menu (не рекомендуемый)Метка Menu, заданная как вектор символов или скаляр строки. Это свойство задает метку, которая появляется в меню (или пункт меню).
Использование свойства Label
не рекомендуется. Это может быть удалено в будущем релизе. Используйте свойство Text
вместо этого.
Position
— Relative (не рекомендуемый)Относительное положение меню, заданное как скалярное целочисленное значение. Значение свойства Position
указывает на размещение на панели меню или в рамках меню. Меню верхнего уровня появляются слева направо на панели меню согласно значению их свойства Position
с 1
, представляющим крайнее левое положение. Отдельные элементы в рамках данного меню появляются сверху донизу согласно значению их свойства Position
с 1
, представляющим самое верхнее положение.
Использование свойства Position
не рекомендуется. Это может быть удалено в будущем релизе. Чтобы изменить порядок пунктов меню, используйте свойство Children
или функцию uistack
вместо этого.
Visible
— Видимость компонента'on'
(значение по умолчанию) | 'off'
Видимость компонента, заданная как 'on'
или 'off'
. Когда свойство Visible
установлено в 'off'
, компонент не видим в пользовательском интерфейсе, но можно запросить и установить его свойства.
Enable
— Рабочее состояние меню'on'
(значение по умолчанию) | 'off'
Рабочее состояние меню, заданного как 'on'
или 'off'
. Это свойство управляет, может ли пользователь выбрать пункт меню. То, когда значением является 'off'
, метка меню появляется, потускнело, указав, что пользователь не может выбрать его.
MenuSelectedFcn
Меню выбрало коллбэк''
(значение по умолчанию) | указатель на функцию | массив ячеек | вектор символовМеню выбрало коллбэк, заданный как одно из этих значений:
Указатель на функцию.
Массив ячеек, в котором первый элемент является указателем на функцию. Последующие элементы массива ячеек являются аргументами, которые передаются в функцию обратного вызова.
Вектор символов, содержащий допустимое выражение MATLAB (не рекомендуемый). MATLAB оценивает это выражение в базовом рабочем пространстве.
Этот коллбэк отвечает в зависимости от местоположения пункта меню и типа взаимодействия:
Щелчок левой кнопкой по меню расширяет то меню и инициировал его коллбэк.
В то время как любое меню расширено, наведя, любое другое родительское меню (или меню верхнего уровня) расширяет то меню и инициировало его коллбэк.
Не используйте коллбэк, чтобы динамически изменить пункты меню. Удаление, добавляя, и заменяющий пункты меню в коллбэке может привести к пустому меню. Вместо этого используйте свойство Visible
для пунктов меню hide или show. Можно также включить и отключить пункты меню путем установки свойства Enable
. Чтобы полностью повторно заполнить пункты меню, удалите и создайте их вне коллбэка.
CreateFcn — функция создания компонентов
''
(значение по умолчанию) | указатель на функцию | массив ячеек | вектор символовФункция создания компонентов, заданная в качестве одного из следующих значений:
Указатель на функцию.
Массив ячеек, в котором первый элемент является указателем на функцию. Последующие элементы массива ячеек являются аргументами, которые передаются в функцию обратного вызова.
Вектор символов, содержащий допустимое выражение MATLAB (не рекомендуемый). MATLAB оценивает это выражение в базовом рабочем пространстве.
Это свойство задает функцию обратного вызова, чтобы выполниться, когда MATLAB создает компонент. MATLAB инициализирует все значения свойства компонентов прежде, чем выполнить коллбэк CreateFcn
. Если вы не задаете свойство CreateFcn, то MATLAB выполняет функцию создания по умолчанию.
Используйте функцию gcbo
в своем коде CreateFcn
, чтобы получить объект компонента, который создается.
Установка свойства CreateFcn
на существующем объекте компонента не имеет никакого эффекта.
DeleteFcn — функция удаления компонентов
''
(значение по умолчанию) | указатель на функцию | массив ячеек | вектор символовФункция удаления компонента, заданная в качестве одного из следующих значений:
Указатель на функцию.
Массив ячеек, в котором первый элемент является указателем на функцию. Последующие элементы массива ячеек являются аргументами, которые передаются в функцию обратного вызова.
Вектор символов, содержащий допустимое выражение MATLAB (не рекомендуемый). MATLAB оценивает это выражение в базовом рабочем пространстве.
Свойство DeleteFcn
задает функцию обратного вызова, чтобы выполниться, когда MATLAB удаляет компонент (например, когда пользователь закрывает окно). MATLAB выполняет коллбэк DeleteFcn
прежде, чем уничтожить свойства объекта компонента. Если вы не задаете свойство DeleteFcn, то MATLAB выполняет функцию удаления по умолчанию.
Используйте функцию gcbo
в своем коде DeleteFcn
, чтобы получить объект компонента, который удаляется.
'callback'
Меню выбрало коллбэк (не рекомендуемый)''
(значение по умолчанию) | указатель на функцию | массив ячеек | вектор символовМеню выбрало коллбэк, заданный как одно из этих значений:
Указатель на функцию.
Массив ячеек, в котором первый элемент является указателем на функцию. Последующие элементы массива ячеек являются аргументами, которые передаются в функцию обратного вызова.
Вектор символов, содержащий допустимое выражение MATLAB (не рекомендуемый). MATLAB оценивает это выражение в базовом рабочем пространстве.
Использование свойства Callback
не рекомендуется. Это может быть удалено в будущем релизе. Используйте MenuSelectedFcn
вместо этого.
Interruptible
— Прерывание коллбэка'on'
(значение по умолчанию) | 'off'
Прерывание обратного вызова, обозначаемое как 'on' или 'off'.
Свойство «Прерывание» определяет, можно ли прерывать выполняемый обратный вызов.
Существует два состояния обратного вызова:
Выполняемый обратный вызов — это актуальный на данный момент обратный вызов.
Прерывающий обратный вызов — это обратный вызов, который пытается прервать текущий обратный вызов.
Каждый раз, когда MATLAB вызывает обратный вызов, этот обратный вызов пытается прервать текущий обратный вызов (если он существует). Свойство «Прерывание» объекта, имеющего текущий обратный вызов, определяет, разрешено ли прерывание:
Значение 'on' позволяет другим обратным вызовам прерывать обратные вызовы объекта.
Прерывание происходит на следующем этапе, где MATLAB обрабатывает очередь, такой как тогда, когда существует drawnow
, figure
, getframe
, waitfor
или pause
.
Если текущий обратный вызов содержит одну из этих команд, MATLAB останавливает выполнение обратного вызова в этой точке и выполняет прерывание обратного вызова. MATLAB возобновляет выполнение обратного вызова при завершении прерывания.
Если текущий обратный вызов не содержит одну из этих команд, MATLAB завершает выполнение обратного вызова без прерывания.
Значение 'off' блокирует все попытки прерывания.
Свойство BusyAction объекта, владеющего прерывистым обратным вызовом, определяет, отменяется ли прерывание обратного вызова или помещается в очередь.
Прерывание и выполнение обратного вызова происходят по-разному в таких ситуациях:
Если прерывающий обратный вызов является обратным вызовом DeleteFcn, CloseRequestFcn или SizeChangedFcn, то прерывание происходит независимо от значения свойства прерывания.
Если текущий обратный вызов выполняет функцию waitfor, то прерывание происходит независимо от значения свойства прерывания.
Объекты-таймеры выполняются в соответствии с расписанием независимо от значения свойства прерывания.
MATLAB не сохраняет состояние свойств или отображения, когда прерывание происходит. Например, объект, возвращенный командой gca или gcf, может измениться при выполнении другого обратного вызова.
Смотрите Выполнение обратного вызова Прерывания для примера, который показывает, как свойства Interruptible
и BusyAction
влияют на поведение программы.
BusyAction
Постановка в очередь коллбэка'queue'
(значение по умолчанию) | 'cancel'
Постановка в очередь коллбэка, заданная как 'queue'
(значение по умолчанию) или 'cancel'
. Свойство BusyAction определяет, как MATLAB обрабатывает выполнение прерывания обратных вызовов.
Существует два состояния обратного вызова:
Выполняемый обратный вызов — это актуальный на данный момент обратный вызов.
Прерывающий обратный вызов — это обратный вызов, который пытается прервать текущий обратный вызов.
Свойство BusyAction
источника прерывания обратного вызова определяет, как MATLAB обрабатывает свое выполнение. Свойство BusyAction
имеет эти значения:
'queue' — поместите прерывающий обратный вызов в очередь вызовов, подлежащих обработке после завершения обратного вызова.
cancel' — не выполнять прерывание обратного вызова.
Каждый раз, когда MATLAB вызывает коллбэк, тот коллбэк всегда пытается прервать выполняющийся коллбэк. Свойство Interruptible
объекта, коллбэк которого запускается, определяет, позволено ли прерывание. Если Interruptible
установлен в:
'on' — Прерывание происходит в следующей точке, где MATLAB обрабатывает очередь.
Это значение по умолчанию.
Свойство off
— The BusyAction
(объекта, владеющего прерыванием обратного вызова), определяет, ставит ли MATLAB в очередь или игнорирует прерывание обратного вызова.
Смотрите Выполнение обратного вызова Прерывания для примера, который показывает, как свойства BusyAction
и Interruptible
влияют на поведение программы.
BeingDeleted
— Deletion'off'
| 'on'
Это свойство доступно только для чтения.
Удаление статуса, возврат на 'off' или 'on'.
MATLAB задает значение свойства BeingDeleted 'on', когда обратный вызов DeleteFcn начинает выполнение.
Значение свойства BeingDeleted остается 'on' до того момента, как объект перестанет существовать.
Проверьте значение свойства BeingDeleted, чтобы убедиться, что объект не будет удален до запроса или изменения.
HitTest
Способность стать текущим объектом (не рекомендуемый)'on'
(значение по умолчанию) | 'off'
Это свойство не имеет никакого эффекта на объекты Menu
.
Parent
— Родительский объектFigure
| объект ContextMenu
| объект Menu
Это свойство доступно только для чтения.
Родительский объект, заданный как Figure
, ContextMenu
или объект Menu
. Можно переместить пункт меню в различное окно или переместить его в соответствии с различным меню путем установки этого свойства.
Children
— Дочерние элементы менюGraphicsPlaceholder
(значение по умолчанию) | 1D массив объектов Menu
Дочерние элементы меню, возвращенные как пустой GraphicsPlaceholder
или 1D массив объектов Menu
. Дочерние элементы меню являются другой этой функцией меню как подменю.
Вы не можете добавить или удалить дочерние элементы, использующие свойство Children
. Используйте это свойство просмотреть список дочерних элементов или переупорядочить элементы нижестоящего меню. Порядок дочерних элементов в этом массиве отражает порядок отображенных пунктов меню.
Чтобы добавить дочерний элемент в этот список, установите свойство Parent
дочернего компонента быть объектом Menu
.
Объекты с набором свойств HandleVisibility
к 'off'
не перечисляют в свойстве Children
.
HandleVisibility
Видимость указателя на объект'on'
(значение по умолчанию) | 'callback'
| 'off'
Видимость указателя на объект, заданного как 'on'
, 'callback'
или 'off'
.
Это свойство управляет видимостью указателя на объект в его родительском списке дочерних элементов. Когда указатель не видим в своем родительском списке дочерних элементов, он не возвращен функциями, которые получают указатели путем поиска иерархии объектов или запроса свойств указателя. Эти функции включают get
, findobj
, gca
, gcf
, gco
, newplot
, cla
, clf
и close
. Свойство HandleVisibility
также управляет видимостью указателя объекта в свойстве CurrentObject
родительской фигуры. Указатели все еще допустимы, даже если они не видимы. Если вы можете получить доступ к объекту, вы можете установить его, получить его свойства и передать его любой функции, которая работает с объектами.
Значение HandleVisibility | Описание |
---|---|
'on' | Указатель на объект всегда видим. |
'callback' | Указатель на объект видим из коллбэков или функций, вызванных коллбэками, но не из функций, вызванных из командной строки. Эта опция блокирует доступ к объекту в командной строке, но позволяет обратным вызовам обращаться к нему. |
'off' | Указатель на объект невидим в любом случае. Эта опция предназначена для предотвращения непреднамеренных изменений в пользовательском интерфейсе другой функцией. Установите значение 'off' в HandleVisibility, чтобы временно скрыть указатель в течение выполнения этой функции.
|
Установите графическое корневое свойство ShowHiddenHandles
на 'on'
делать все указатели видимыми, независимо от их значения HandleVisibility
. Эта установка не имеет никакого эффекта на их значения HandleVisibility
.
Ввод
Тип графического объекта'uimenu'
Это свойство доступно только для чтения.
Тип графического объекта, возвращенного как 'uimenu'
.
Тег
Идентификатор объекта''
(значение по умолчанию) | вектор символов | представляет скаляр в виде строкиИдентификатор объекта, заданный как вектор символов или скаляр строки. Можно задать уникальное значение Tag
, чтобы служить идентификатором для объекта. Когда вам нужен доступ к объекту в другом месте вашего кода, вы можете использовать функцию findobj для поиска объекта на основе значения тега.
UserData
UserData []
(значение по умолчанию) | массивПользовательские данные, заданные как любой массив. Определение UserData
может быть полезно для обмена данными в рамках приложений. Смотрите Осуществляют обмен данными Среди Коллбэков для получения дополнительной информации.
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.