Управляйте внешним видом и поведением контекстного меню
Контекстное меню является меню, которое появляется, когда вы щелкаете правой кнопкой по графическому объекту или компоненту пользовательского интерфейса. Используйте uicontextmenu функция, чтобы создать контекстное меню и установить свойства. Путем изменения значений свойств можно изменить внешний вид и поведение контекстного меню. Используйте запись через точку, чтобы относиться к определенному объекту контекстного меню и свойству. Можно породить контекстное меню фигуре, созданной с любым uifigure или figure функция.
fig = uifigure; cm = uicontextmenu; cm.Parent = fig; m = uimenu(cm,'Text','Go To File'); fig.ContextMenu = cm;
ContextMenuOpeningFcn — Контекстное меню, открывающее функцию обратного вызова'' (значение по умолчанию) | указатель на функцию | массив ячеек | вектор символовКонтекстное меню, открывающее функцию обратного вызова в виде одного из этих значений:
Указатель на функцию.
Массив ячеек, в котором первый элемент является указателем на функцию. Последующие элементы массива ячеек являются аргументами, которые передаются в функцию обратного вызова.
Вектор символов, содержащий допустимое выражение MATLAB® (не рекомендуемый). MATLAB оценивает это выражение в базовом рабочем пространстве.
CreateFcn — Функция создания'' (значение по умолчанию) | указатель на функцию | массив ячеек | вектор символовФункция создания объекта в виде одного из этих значений:
Указатель на функцию.
Массив ячеек, в котором первым элементом является указатель на функцию. Последующие элементы массива ячеек являются аргументами, которые передаются в функцию обратного вызова.
Вектор символов, содержащий допустимое выражение MATLAB (не рекомендуемый). MATLAB оценивает это выражение в базовом рабочем пространстве.
Для получения дополнительной информации об определении коллбэка как указатель на функцию, массив ячеек или вектор символов, видит Коллбэки Записи в App Designer.
Это свойство задает функцию обратного вызова, чтобы выполниться, когда MATLAB создает объект. MATLAB инициализирует все значения свойств прежде, чем выполнить CreateFcn 'callback'. Если вы не задаете CreateFcn свойство, затем MATLAB выполняет функцию создания по умолчанию.
Установка CreateFcn свойство на существующем компоненте не оказывает влияния.
Если вы задаете это свойство как указатель на функцию или массив ячеек, можно получить доступ к объекту, который создается с помощью первого аргумента функции обратного вызова. В противном случае используйте gcbo функционируйте, чтобы получить доступ к объекту.
DeleteFcn — Функция удаления'' (значение по умолчанию) | указатель на функцию | массив ячеек | вектор символовФункция удаления объекта в виде одного из этих значений:
Указатель на функцию.
Массив ячеек, в котором первым элементом является указатель на функцию. Последующие элементы массива ячеек являются аргументами, которые передаются в функцию обратного вызова.
Вектор символов, содержащий допустимое выражение MATLAB (не рекомендуемый). MATLAB оценивает это выражение в базовом рабочем пространстве.
Для получения дополнительной информации об определении коллбэка как указатель на функцию, массив ячеек или вектор символов, видит Коллбэки Записи в App Designer.
Это свойство задает функцию обратного вызова, чтобы выполниться, когда MATLAB удаляет объект. MATLAB выполняет DeleteFcn коллбэк прежде, чем уничтожить свойства объекта. Если вы не задаете DeleteFcn свойство, затем MATLAB выполняет функцию удаления по умолчанию.
Если вы задаете это свойство как указатель на функцию или массив ячеек, можно получить доступ к объекту, который удаляется с помощью первого аргумента функции обратного вызова. В противном случае используйте gcbo функционируйте, чтобы получить доступ к объекту.
Interruptible — Прерывание коллбэка'on' (значение по умолчанию) | логическое значение включения - выключенияПрерывание коллбэка в виде 'on' или 'off', или как числовой или логический 1 TRUE) или 0 ложь). Значение 'on' эквивалентно true, и 'off' эквивалентно false. Таким образом можно использовать значение этого свойства как логическое значение. Значение хранится как логическое значение включения - выключения типа matlab.lang.OnOffSwitchState.
Это свойство определяет, может ли рабочий коллбэк быть прерван. Существует два состояния обратного вызова:
Выполняемый обратный вызов — это актуальный на данный момент обратный вызов.
Прерывающий обратный вызов — это обратный вызов, который пытается прервать текущий обратный вызов.
Каждый раз, когда MATLAB вызывает обратный вызов, этот обратный вызов пытается прервать текущий обратный вызов (если он существует). Interruptible свойство объекта, владеющего рабочим коллбэком, определяет, позволено ли прерывание.
Значение 'on' позволяет другим коллбэкам прерывать коллбэки объекта. Прерывание происходит на следующем этапе, где MATLAB обрабатывает очередь, такой как тогда, когда существует drawnowфигураФигура пользовательского интерфейсаgetframewaitfor, или pause команда.
Если рабочий коллбэк содержит одну из тех команд, то MATLAB останавливает выполнение коллбэка в той точке и выполняет прерывание обратного вызова. MATLAB возобновляет выполнение обратного вызова при завершении прерывания.
Если рабочий коллбэк не содержит одну из тех команд, то MATLAB закончил выполнять коллбэк без прерывания.
Значение 'off' блоки все попытки прерывания. BusyAction свойство объекта, владеющего прерыванием обратного вызова, определяет, отбрасывается ли прерывание обратного вызова или помещается в очередь.
Прерывание и выполнение обратного вызова происходят по-разному в таких ситуациях:
Если прерыванием обратного вызова является DeleteFcnCloseRequestFcn или SizeChangedFcn коллбэк, затем прерывание происходит независимо от Interruptible значение свойства.
Если рабочий коллбэк является выполняющимся в данным моментом waitfor функция, затем прерывание происходит независимо от Interruptible значение свойства.
Timer объекты выполняются согласно расписанию независимо от Interruptible значение свойства.
Когда происходит прерывание, MATLAB не сохраняет состояние свойств или изображения. Например, объект, возвращенный gca или gcf команда может измениться, когда другой коллбэк выполняется.
BusyAction — Постановка в очередь коллбэка'queue' (значение по умолчанию) | 'cancel'Постановка в очередь коллбэка в виде 'queue' или 'cancel'. BusyAction свойство определяет, как MATLAB обрабатывает выполнение прерываний обратного вызова. Существует два состояния обратного вызова:
Выполняемый обратный вызов — это актуальный на данный момент обратный вызов.
Прерывающий обратный вызов — это обратный вызов, который пытается прервать текущий обратный вызов.
Каждый раз, когда MATLAB инициирует обратный вызов, этот обратный вызов пытается прервать текущий обратный вызов. Interruptible свойство объекта, владеющего рабочим коллбэком, определяет, разрешено ли прерывание. Если прерывание не разрешено, то BusyAction свойство объекта, владеющего прерыванием обратного вызова, определяет, отбрасывается ли это или вставило очередь. Это возможные значения BusyAction свойство:
'queue' — Помещает прерывание обратного вызова в очередь, чтобы быть обработанным после рабочего выполнения концов коллбэка.
'cancel' — Не выполняет прерывание обратного вызова.
BeingDeleted — Состояние DeletionЭто свойство доступно только для чтения.
Состояние Deletion, возвращенное как логическое значение включения - выключения типа matlab.lang.OnOffSwitchState.
MATLAB устанавливает BeingDeleted свойство к 'on' когда DeleteFcn коллбэк начинает выполнение. BeingDeleted свойство остается установленным в 'on' пока объект компонента больше не существует.
Проверяйте значение BeingDeleted свойство проверить, что объект не собирается быть удаленным прежде, чем запросить или изменить его.
Parent — Родительский объектFigure объектРодительский объект в виде Figure объект, созданный с любым uifigure или figure функция. Если родительская фигура не задана, то MATLAB вызывает figure функция, чтобы создать ту, которая служит родительским элементом.
Можно переместить ContextMenu возразите против различной фигуры путем установки этого свойства на целевой Figure объект.
Children — Дочерние элементы контекстного менюGraphicsPlaceholder массив (значение по умолчанию) | вектор Menu объектыДочерние элементы контекстного меню, возвращенные как пустой GraphicsPlaceholder или вектор Menu объекты.
Вы не можете добавить или удалить дочерние элементы, использующие Children свойство. Используйте это свойство просмотреть список дочерних элементов или переупорядочить элементы нижестоящего меню. Порядок дочерних элементов в этом массиве отражает обратный порядок того, как пункты меню появляются в открытом контекстном меню.
Например, этот код создает три контекстных меню. Когда вы открываете контекстное меню в запущенном приложении, Menu1 появляется как первый пункт меню.
fig = uifigure; cm = uicontextmenu(fig); m1 = uimenu(cm,'Text','Menu1'); m2 = uimenu(cm,'Text','Menu2'); m3 = uimenu(cm,'Text','Menu3'); fig.ContextMenu = cm;
cm.Children возвращает список пунктов меню в обратном порядке.
cm.Children
ans = 3×1 Menu array: Menu (Menu3) Menu (Menu2) Menu (Menu1)
Объекты с HandleVisibility набор свойств к 'off' не перечислены в Children свойство.
Чтобы добавить дочерний элемент в этот список, установите Parent свойство другого Menu возразите против этого ContextMenu объект.
HandleVisibility — Видимость указателя на объект'on' (значение по умолчанию) | 'callback' | 'off'Видимость указателя на объект в виде 'on''callback', или 'off'.
Это свойство контролирует видимость объекта в списке дочерних элементов его родителя. Когда объект не отображается в списке дочерних элементов его родителя, он не возвращается с помощью функций, которые получают объекты, просматривая иерархию объектов или запрашивая свойства. Эти функции включают getfindobjgcagcfgconewplotclaclf, и close. HandleVisibility свойство также управляет видимостью указателя объекта в CurrentObject родительской фигуры свойство. Объекты действительны, даже если они не видны. Если вы можете получить доступ к объекту, вы можете установить его, получить его свойства и передать его любой функции, которая работает с объектами.
| Значение HandleVisibility | Описание |
|---|---|
'on' | Указатель на объект всегда отображается. |
'callback' | Указатель на объект отображается из коллбэков или функций, вызванных коллбэками, но не из функций, вызванных из командной строки. Эта опция блокирует доступ к объекту в командной строке, но позволяет обратным вызовам обращаться к нему. |
'off' | Указатель на объект невидим в любом случае. Эта опция предназначена для предотвращения непреднамеренных изменений в пользовательском интерфейсе другой функцией. Установите HandleVisibility к 'off' временно скрыть указатель во время выполнения этой функции. |
Type — Тип графического объекта'uicontextmenu'Это свойство доступно только для чтения.
Тип графического объекта, возвращенного как 'uicontextmenu'.
Tag — Идентификатор объекта'' (значение по умолчанию) | вектор символов | строковый скалярИдентификатор объекта в виде вектора символов или строкового скаляра. Можно задать уникальный Tag значение, чтобы служить идентификатором для объекта. Когда вам нужен доступ к объекту в другом месте в вашем коде, можно использовать findobj функционируйте, чтобы искать основанное на объектах на Tag значение.
UserData UserData [] (значение по умолчанию) | массивПользовательские данные в виде любого массива. Определение UserData может быть полезно для обмена данными в рамках приложений. Смотрите Осуществляют обмен данными Среди Коллбэков для получения дополнительной информации.
Callback свойство ContextMenu объекты не рекомендуютсяНе рекомендуемый запуск в R2020a
Запуск в R2020a, использование Callback свойство ContextMenu объект не рекомендуется. Используйте ContextMenuOpeningFcn свойство ContextMenu объект вместо этого. Значения свойств являются тем же самым.
Нет никаких планов удалить поддержку Callback свойство ContextMenu объекты в это время. Однако это свойство больше не появляется в списке, возвращенном путем вызова get функция на ContextMenu объект.
Visible и Position свойства ContextMenu объекты не рекомендуютсяНе рекомендуемый запуск в R2020a
Запуск в R2020a, использование Visible и Position свойства сконфигурировать контекстное меню, чтобы открыться в определенном местоположении не рекомендуются. В приложениях, созданных с uifigure функция, используйте open функцию вместо этого.
Нет никаких планов удалить поддержку Visible и Position свойства ContextMenu объекты в это время. Однако эти свойства больше не появляются в списке, возвращенном путем вызова get функция на ContextMenu объект.
open | uicontextmenu | uimenu
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.