Создание меню для программных приложений

Добавление меню панели меню

Используйте функцию 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';

Смотрите раздел, Пункт меню, для получения информации о программировании пунктов меню.

Добавление контекстных меню к программному приложению

Контекстные меню появляются, когда пользователь щелкает правой кнопкой по компоненту пользовательского интерфейса или фигуре. Выполните эти шаги, чтобы добавить контекстное меню в ваш пользовательский интерфейс:

  1. Создайте объект контекстного меню использование функции uicontextmenu.

  2. Добавьте пункты меню в контекстное меню с помощью функции uimenu.

  3. Сопоставьте контекстное меню с графическим объектом с помощью свойства 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, или если пользователь щелкает вне контекстного меню, контекстное меню исчезает.

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

|

Похожие темы

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