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

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

Используйте 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') не может иметь панелей меню, панелей инструментов или прикрепляющихся средств управления.

Для получения дополнительной информации смотрите DockControlsMenuBar , 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

Щелкните правой кнопкой по фигуре или по осям. Контекстное меню появляется со своим верхним левым углом в местоположении, по которому вы кликнули. Щелкните правой кнопкой по панели или ее кнопке. Контекстное меню не появляется.

Принудительное отображение контекстного меню

Если вы устанавливаете контекстное меню Visible свойство on, контекстное меню отображено в местоположении, заданном Position свойство, без пользователя, принимающего любые меры. В этом примере, контекстном меню Position свойство [10 215].

cmenu.Visible = 'on';

Контекстное меню отображается в 10 пикселях от левых фигуры и в 215 пикселях от нижней части.

Если вы устанавливаете контекстное меню Visible свойство к off, или если пользователь щелкает вне контекстного меню, контекстное меню исчезает.

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

|

Похожие темы