Управляйте внешним видом и поведением контекстного меню
Контекстное меню является меню, которое появляется, когда пользователь щелкает правой кнопкой по компоненту UI или графическому объекту. Функция uicontextmenu
создает контекстное меню и устанавливает любые необходимые свойства. Путем изменения значений свойств можно изменить внешний вид и поведение контекстного меню. Используйте запись через точку, чтобы относиться к конкретному объекту и свойству.
c = uicontextmenu; c.Position = [20 20];
Visible
— Видимость контекстного меню'off'
(значение по умолчанию) | 'on'
Видимость контекстного меню, заданная как 'on'
или 'off'
. Можно использовать свойство Visible
одним из двух способов:
Запросите значение, чтобы узнать, отправляется ли контекстное меню в настоящее время. Контекстное меню отправляется, в то время как значение свойства Visible
установлено в 'on'
.
Установите свойство Visible
на 'on'
делать контекстное меню, чтобы появиться. Установите это свойство на 'off'
делать контекстное меню, чтобы исчезнуть.
Position
— Местоположение контекстного меню[left bottom]
Местоположение меню содержимого, заданное как вектор, [left bottom]
. В этой таблице описываются каждый элемент в векторе.
Элемент | Описание |
---|---|
left | Расстояние от внутреннего левого края фигуры к левому краю контекстного меню |
bottom | Расстояние от внутреннего базового края фигуры к верхнему краю контекстного меню |
Свойство Position
задает местоположение контекстного меню когда его Visible
свойство установлено в 'on'
.
'callback'
Функция обратного вызова контекстного меню''
(значение по умолчанию) | указатель на функцию | массив ячеек | вектор символаФункция обратного вызова контекстного меню, заданная как одно из этих значений:
Указатель на функцию.
Массив ячеек, в котором первый элемент является указателем на функцию. Последующие элементы массива ячеек являются аргументами, которые передаются в функцию обратного вызова.
Вектор символа, содержащий допустимое выражение MATLAB® (не рекомендуемый). MATLAB оценивает это выражение в базовом рабочем пространстве.
Типы данных: function_handle
| ячейка
| char
CreateFcn — функция создания компонентов
''
(значение по умолчанию) | указатель на функцию | массив ячеек | вектор символаФункция создания компонентов, заданная в качестве одного из следующих значений:
Указатель на функцию.
Массив ячеек, в котором первый элемент является указателем на функцию. Последующие элементы массива ячеек являются аргументами, которые передаются в функцию обратного вызова.
Вектор символа, содержащий допустимое выражение MATLAB (не рекомендуемый). MATLAB оценивает это выражение в базовом рабочем пространстве.
Это свойство задает функцию обратного вызова, чтобы выполниться, когда MATLAB создает компонент. MATLAB инициализирует все значения свойства компонентов прежде, чем выполнить обратный вызов CreateFcn
. Если вы не задаете свойство CreateFcn, то MATLAB выполняет функцию создания по умолчанию.
Используйте функцию gcbo
в своем коде CreateFcn
, чтобы получить объект компонента, который создается.
Установка свойства CreateFcn
на существующем объекте компонента не имеет никакого эффекта.
DeleteFcn — функция удаления компонентов
''
(значение по умолчанию) | указатель на функцию | массив ячеек | вектор символаФункция удаления компонента, заданная в качестве одного из следующих значений:
Указатель на функцию.
Массив ячеек, в котором первый элемент является указателем на функцию. Последующие элементы массива ячеек являются аргументами, которые передаются в функцию обратного вызова.
Вектор символа, содержащий допустимое выражение MATLAB (не рекомендуемый). MATLAB оценивает это выражение в базовом рабочем пространстве.
Свойство DeleteFcn
задает функцию обратного вызова, чтобы выполниться, когда MATLAB удаляет компонент (например, когда пользователь закрывает окно). MATLAB выполняет обратный вызов DeleteFcn
прежде, чем уничтожить свойства объекта компонента. Если вы не задаете свойство DeleteFcn, то MATLAB выполняет функцию удаления по умолчанию.
Используйте функцию gcbo
в своем коде DeleteFcn
, чтобы получить объект компонента, который удаляется.
Interruptible
— Прерывание обратного вызова'on'
(значение по умолчанию) | 'off'
Прерывание обратного вызова, обозначаемое как 'on' или 'off'.
Свойство «Прерывание» определяет, можно ли прерывать выполняемый обратный вызов.
Существует два состояния обратного вызова:
Выполняемый обратный вызов — это актуальный на данный момент обратный вызов.
Прерывающий обратный вызов — это обратный вызов, который пытается прервать текущий обратный вызов.
Каждый раз, когда MATLAB вызывает обратный вызов, этот обратный вызов пытается прервать текущий обратный вызов (если он существует). Свойство «Прерывание» объекта, имеющего текущий обратный вызов, определяет, разрешено ли прерывание:
Значение 'on' позволяет другим обратным вызовам прерывать обратные вызовы объекта.
Прерывание происходит на следующем этапе, где MATLAB обрабатывает очередь, такой как тогда, когда существует drawnow
, фигура
, getframe
, waitfor
, или сделать паузу
.
Если текущий обратный вызов содержит одну из этих команд, MATLAB останавливает выполнение обратного вызова в этой точке и выполняет прерывание обратного вызова. MATLAB возобновляет выполнение обратного вызова при завершении прерывания.
Если текущий обратный вызов не содержит одну из этих команд, MATLAB завершает выполнение обратного вызова без прерывания.
Значение 'off' блокирует все попытки прерывания.
Свойство BusyAction объекта, владеющего прерывистым обратным вызовом, определяет, отменяется ли прерывание обратного вызова или помещается в очередь.
Прерывание и выполнение обратного вызова происходят по-разному в таких ситуациях:
Если прерывающий обратный вызов является обратным вызовом DeleteFcn, CloseRequestFcn или SizeChangedFcn, то прерывание происходит независимо от значения свойства прерывания.
Если текущий обратный вызов выполняет функцию waitfor, то прерывание происходит независимо от значения свойства прерывания.
Объекты-таймеры выполняются в соответствии с расписанием независимо от значения свойства прерывания.
MATLAB не сохраняет состояние свойств или отображения, когда прерывание происходит. Например, объект, возвращенный командой gca или gcf, может измениться при выполнении другого обратного вызова.
Смотрите Выполнение обратного вызова Прерывания для примера, который показывает, как свойства Interruptible
и BusyAction
влияют на поведение программы.
BusyAction
Постановка в очередь обратного вызова'queue'
(значение по умолчанию) | 'cancel'
Постановка в очередь обратного вызова, заданная как 'queue'
(значение по умолчанию) или 'cancel'
. The BusyAction property determines how MATLAB handles the execution of interrupting callbacks.
There are two callback states to consider:
Выполняемый обратный вызов — это актуальный на данный момент обратный вызов.
Прерывающий обратный вызов — это обратный вызов, который пытается прервать текущий обратный вызов.
Свойство 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, чтобы убедиться, что объект не будет удален до запроса или изменения.
Parent
— Родительский объектРодительский объект, заданный как фигура. Можно переместить ContextMenu
к различной фигуре путем установки этого свойства на целевой объект Figure
.
Children
— Дочерние элементы менюGraphicsPlaceholder
(значение по умолчанию) | 1D массив объектов Menu
Дочерние элементы меню, возвращенные как пустой GraphicsPlaceholder
или 1D массив объектов Menu
. Дочерние элементы меню являются другой этой функцией меню как подменю.
Вы не можете добавить или удалить дочерние элементы, использующие свойство Children
. Используйте это свойство просмотреть список дочерних элементов или переупорядочить элементы нижестоящего меню. Порядок дочерних элементов в этом массиве отражает порядок отображенных пунктов меню.
Чтобы добавить дочерний элемент к этому списку, установите свойство Parent
дочернего компонента быть объектом ContextMenu
.
Объекты с набором свойств 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' | Указатель на объект невидим в любом случае. This option is useful for preventing unintended changes to the UI by another function. Set the HandleVisibility to 'off' to temporarily hide the handle during the execution of that function.
|
Установите графическое корневое свойство ShowHiddenHandles
на 'on'
делать все указатели видимыми, независимо от их значения HandleVisibility
. Эта установка не имеет никакого эффекта на их значения HandleVisibility
.
Ввод
Тип графического объектаUIContextMenu
Это свойство доступно только для чтения.
Тип графического объекта, возвращенного как 'uicontextmenu'
.
Тег
Идентификатор объекта''
(значение по умолчанию) | вектор символа | представляет скаляр в виде строкиИдентификатор объекта, заданный как вектор символа или скаляр строки. Можно задать уникальное значение Tag
, чтобы служить идентификатором для объекта. Когда вам нужен доступ к объекту в другом месте вашего кода, вы можете использовать функцию findobj для поиска объекта на основе значения тега.
UserData
UserData []
(значение по умолчанию) | массивПользовательские данные, заданные как любой массив. Определение UserData
может быть полезно для обмена данными в рамках приложений. Смотрите Осуществляют обмен данными Среди Обратных вызовов для получения дополнительной информации.
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.