Используйте функцию uimenu
, чтобы добавить меню панели меню в ваш пользовательский интерфейс. Синтаксис для uimenu
mh = uimenu(parent,'PropertyName',PropertyValue,...)
Где mh
является указателем появившегося меню или пункта меню. Смотрите страницу с описанием uimenu
для других допустимых синтаксисов.
Эти темы обсуждают использование меню панели стандартного меню MATLAB® и описывают обычно используемые свойства меню и предлагают некоторые простые примеры.
Отображение меню панели стандартного меню является дополнительным. Панель меню этой фигуры содержит стандартные меню.
Если вы используете меню панели стандартного меню, любые меню, которые вы создаете, добавляются к нему. Если вы принимаете решение не отобразить меню панели стандартного меню, панель меню содержит только меню, которые вы создаете. Если вы не отображаете стандартных меню, и вы не создаете меню, сама панель меню не отображается.
Используйте фигуру свойство MenuBar
отобразить или скрыть панель стандартного меню MATLAB, показанную в предыдущей фигуре. Установите MenuBar
на figure
(значение по умолчанию) отображать стандартные меню. Установите MenuBar
на none
скрывать их.
fh.MenuBar = 'figure'; % Display standard menu bar menus. fh.MenuBar = 'none'; % Hide standard menu bar menus.
В этих операторах fh
является указателем фигуры.
Когда вы настраиваете панель меню или панель инструментов, можно управлять отображением средств управления прикреплением окна путем установки свойства DockControls
. Вам не могут быть нужны меню для вашего приложения, но если вы хотите, чтобы пользователь смог прикрепить или расстыковать окно, оно должно содержать панель меню или панель инструментов. Это вызвано тем, что прикреплением управляют прикрепляющийся значок, маленькая кривая стрелка около верхнего правого угла панели меню или панели инструментов, когда следующий рисунок показывает.
Окна рисунка с панелью стандартного меню также имеют меню Desktop, из которого пользователь может прикрепить и расстыковать их.
Чтобы отобразить прикрепляющуюся стрелку и пункт меню Desktop> Dock Figure, свойство DockControls
фигуры должно быть установлено в 'on'
. Можно установить это свойство в Property Inspector. Кроме того, MenuBar
и/или свойства ToolBar
фигуры должны собираться в 'on'
отобразить прикрепляющиеся средства управления.
Свойство WindowStyle
фигуры также влияет на прикрепляющееся поведение. Значением по умолчанию является 'normal'
, но если вы изменяете его на 'docked'
, затем следующее применяется:
Пользовательский интерфейс открывается прикрепленный в рабочем столе, когда вы запускаете приложение.
Свойство DockControls
установлено в 'on'
и не может быть выключено, пока WindowStyle
больше не устанавливается в 'docked'
.
Если вы расстыкуете пользовательский интерфейс, созданный с набором WindowStyle
к 'docked'
, окно будет иметь не, имеют прикрепляющуюся стрелку, если фигура не отображает панель меню или панель инструментов. Когда окно не имеет никакой стрелки прикрепления, пользователи могут расстыковать его с рабочего стола, но будут не мочь повторно прикрепить его.
Подводя итоги, можно отобразиться стыкующий средства управления со свойства DockControls
, пока это не находится в конфликте со свойством WindowStyle
фигуры.
Модальные диалоговые окна (фигуры с набором свойств WindowStyle
к 'modal'
) не могут иметь панелей меню, панелей инструментов или прикрепляющихся средств управления.
Для получения дополнительной информации смотрите DockControls
, MenuBar
, ToolBar
и описания свойства WindowStyle
на странице Figure Properties.
Следующие операторы создают меню панели меню с двумя пунктами меню.
mh = uimenu(fh,'Text','My menu'); eh1 = uimenu(mh,'Text','Item 1'); eh2 = uimenu(mh,'Text','Item 2','Checked','on');
fh
является указателем родительской фигуры.
mh
является указателем родительского меню.
Свойство Text
задает текст, который появляется в меню.
Свойство Checked
указывает, что этот элемент отображен с проверкой рядом с ним, когда меню создается.
Если ваш пользовательский интерфейс отображает панель стандартного меню, новое меню добавляется к нему.
Если ваш пользовательский интерфейс не отображает панель стандартного меню, MATLAB создает панель меню, если ни один не существует и затем добавляет меню в него.
Эта команда добавляет строку разделителя, предшествующую второму пункту меню.
eh2.Separator = 'on';
Следующие операторы добавляют два подэлемента меню в Пункт 1, присваивают каждый подэлемент ускоритель клавиатуры и отключают первый подэлемент.
seh1 = uimenu(eh1,'Text','Choice 1','Accelerator','C',... 'Enable','off'); seh2 = uimenu(eh1,'Text','Choice 2','Accelerator','H');
Свойство Accelerator
добавляет ускорителей клавиатуры в пункты меню. Некоторые акселераторы могут использоваться для других целей в вашей системе, и другие действия могут закончиться.
Свойство Enable
отключает первый Выбор подэлемента 1, таким образом, пользователь не может выбрать его, когда меню сначала создается. Элемент появляется, потускнел.
После того, как вы создали все пункты меню, установил их свойства HandleVisibility
off
путем выполнения следующих операторов:
menuhandles = findall(figurehandle,'type','uimenu'); menuhandles.HandleVisibility = 'off';
Смотрите раздел, Пункт меню, для получения информации о программировании пунктов меню.
Контекстные меню появляются, когда пользователь щелкает правой кнопкой по компоненту пользовательского интерфейса или фигуре. Выполните эти шаги, чтобы добавить контекстное меню в ваш пользовательский интерфейс:
Создайте объект контекстного меню использование функции uicontextmenu
.
Добавьте пункты меню в контекстное меню с помощью функции uimenu
.
Сопоставьте контекстное меню с графическим объектом с помощью свойства UIContextMenu
объекта.
Используйте функцию uicontextmenu
, чтобы создать объект контекстного меню. Синтаксис
handle = uicontextmenu('PropertyName',PropertyValue,...)
Родительский элемент контекстного меню должен всегда быть фигурой. Используйте свойство Parent
задать родительский элемент uicontextmenu. Если вы не задаете свойство Parent
, родительский элемент является текущей фигурой, как задано полностью свойство CurrentFigure
.
Следующий код создает фигуру и контекстное меню, родительский элемент которого является фигурой. На данном этапе фигура видима, но не меню.
fh = figure('Position',[300 300 400 225]); cmenu = uicontextmenu('Parent',fh,'Position',[10 215]);
Принудительное отображение Контекстного меню объясняет использование свойства Position
.
Используйте функцию uimenu
, чтобы добавить элементы в контекстное меню. Элементы появляются в меню в порядке, в котором вы добавляете их. Следующий код добавляет три элемента в контекстное меню, созданное выше.
mh1 = uimenu(cmenu,'Text','Item 1'); mh2 = uimenu(cmenu,'Text','Item 2'); mh3 = uimenu(cmenu,'Text','Item 3');
Можно задать любые применимые Свойства меню, когда вы задаете элементы контекстного меню. Смотрите страницу с описанием uimenu
и Добавьте Меню Панели меню для получения информации об использовании uimenu
, чтобы создать пункты меню. Обратите внимание на то, что контекстные меню не имеют свойства Accelerator
.
После того, как вы создали контекстное меню и все его элементы, установил их свойства HandleVisibility
на 'off'
путем выполнения следующих операторов:
cmenuhandles = findall(figurehandle,'type','uicontextmenu'); cmenuhandles.HandleVisibility = 'off'; menuitemhandles = findall(cmenuhandles,'type','uimenu'); menuitemhandles.HandleVisibility = 'off';
Можно сопоставить контекстное меню с самой фигурой и со всеми компонентами, которые имеют свойство UIContextMenu
. Это включает оси, панель, группу кнопок, все средства управления пользовательским интерфейсом (uicontrol).
Этот код добавляет панель и оси фигуре. Панель содержит одну кнопку.
ph = uipanel('Parent',fh,'Units','pixels',... 'Position',[20 40 150 150]); bh1 = uicontrol(ph,'String','Button 1',... 'Position',[20 20 60 40]); ah = axes('Parent',fh,'Units','pixels',... 'Position',[220 40 150 150]);
Этот код сопоставляет контекстное меню с фигурой и с осями путем установки свойства UIContextMenu
фигуры и осей к указателю cmenu
контекстного меню.
fh.UIContextMenu = cmenu; % Figure ah.UIContextMenu = cmenu; % Axes
Щелкните правой кнопкой по фигуре или по осям. Контекстное меню появляется со своим верхним левым углом в местоположении, по которому вы кликнули. Щелкните правой кнопкой по панели или ее кнопке. Контекстное меню не появляется.
Если вы устанавливаете свойство on
контекстного меню Visible
, контекстное меню отображено в местоположении, заданном свойством Position
без пользователя, принимающего любые меры. В этом примере свойство контекстного меню Position
[10 215].
cmenu.Visible = 'on';
Контекстное меню отображается в 10 пикселях от левых фигуры и в 215 пикселях от нижней части.
Если вы устанавливаете свойство контекстного меню Visible
на off
, или если пользователь щелкает вне контекстного меню, контекстное меню исчезает.