Создайте меню для приложений GUIDE

Примечание

Окружение GUIDE будет удаляемо в следующем релизе. После удаления GUIDE существующие приложения GUIDE будут продолжать запускаться в MATLAB® но они не будут редактироваться в GUIDE.

Чтобы продолжить редактирование существующего приложения GUIDE, смотрите GUIDE Migration Strategies для получения информации о том, как помочь поддерживать совместимость приложения с будущими релизами MATLAB. Чтобы создать новые приложения в интерактивном режиме, вместо этого Разрабатывайте приложения с использованием App Designer.

Можно использовать GUIDE, чтобы создать панели меню (содержащие раскрывающиеся меню), а также контекстные меню, которые вы присоединяете к компонентам. Создать оба типа меню можно с помощью редактора меню. Откройте Редактор меню из меню Инструментов или нажмите кнопку Menu Editor.

Меню для панели меню

При создании раскрывающегося меню GUIDE добавляет его заголовок в панель меню. Затем можно создать элементы меню для этого меню. Каждый элемент меню может иметь каскадное меню, также известное как submenu, и эти элементы могут иметь каскадные меню и так далее.

Как меню влияет на закрепление фигуры

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

Окна рисунка со стандартной панелью меню также имеют Desktop меню, из которого пользователь может закрепить и отстыковать их.

Чтобы отобразить стрелу закрепления и элемент меню Desktop > Dock Figure, используйте Property Inspector, чтобы задать свойство рисунка DockControls на 'on'. Вы также должны задать MenuBar и/или ToolBar свойства рисунка в 'figure' для отображения элементов управления стыковкой.

The WindowStyle свойство figure также влияет на поведение закрепления. Значение по умолчанию является 'normal', но если вы измените его на 'docked', затем применяется следующее:

  • Окно пользовательского интерфейса открывается закрепленным на рабочем столе, когда вы запускаете его.

  • The DockControls для свойства задано значение 'on' и не может быть отключена до тех пор, пока WindowStyle больше не установлено на 'docked'.

  • Если вы отстыковываете окно пользовательского интерфейса, созданное с помощью WindowStyle 'docked'он не будет иметь стрелы закрепления, если на рисунке не отображается панели меню или панель инструментов (стандартная или настроенная). Когда он не имеет стрелы док-станции, пользователи могут отстыковать его с рабочего стола, но не смогут переблокировать его там.

Однако, когда вы предоставляете свою собственную панель меню или панель инструментов с помощью GUIDE, она может отобразить стрелу закрепления, если вы хотите, чтобы окно пользовательского интерфейса было закрепленным.

Примечание

Пользовательские интерфейсы, которые являются модальными диалогами (рисунки с WindowStyle установлено на 'modal') не могут иметь панели меню, панели инструментов или элементы управления стыковкой.

Для получения дополнительной информации смотрите DockControls, MenuBar, ToolBar, и WindowStyle описания свойств в свойствах фигуры.

Добавить стандартные меню в панель меню

Рисунок MenuBar свойство контролирует, отображает ли ваш пользовательский интерфейс стандартные меню MATLAB на панели меню. GUIDE первоначально устанавливает значение MenuBar на none. Если необходимо, чтобы пользовательский интерфейс отображал стандартные меню MATLAB, используйте Property Inspector, чтобы задать MenuBar на figure.

  • Если значение MenuBar является noneGUIDE автоматически добавляет панель меню, в которой отображаются только те меню, которые вы создаете.

  • Если значение MenuBar является figureпользовательский интерфейс отображает стандартные меню MATLAB, а GUIDE добавляет созданные меню в правую часть панели меню.

В любом случае можно разрешить пользователю закрепить и отстыковать окно путем установки < reservedrangesplaceholder0 > рисунка свойство к 'on'.

Создайте меню

  1. Запустите новое меню, нажав кнопку «Создать меню» на панели инструментов. Заголовок меню,  Untitled 1, появляется в левой панели диалогового окна.

    По умолчанию GUIDE выбирает вкладку Панель меню, когда вы открываете Редактор меню.

  2. Щелкните заголовок меню, чтобы отобразить выбранные свойства меню на правой панели.

  3. Заполните поля Text и Tag для меню. Для примера установите значение Text равным File и установите значение тега file_menu. Щелкните за пределами поля, чтобы изменение вступило в эффект.

    Текст является текстовой меткой для элемента меню. Для отображения символа & в метке используйте два & персонажи. Слова remove, default, и factory(с учетом регистра) зарезервированы. Чтобы использовать одно из них в качестве меток, подготовьте символ обратной косой черты (\). Для примера, \remove приводит к удалению.

    Тег является вектором символов, которая служит идентификатором для объекта меню. Он используется в коде, чтобы идентифицировать элемент меню и должен быть уникальным в вашем файле кода.

Добавление элементов в меню

Используйте инструмент «Новый элемент меню» для создания элементов меню, отображаемых в раскрывающемся меню.

  1. Добавьте элемент Open меню в File, путем выбора File затем нажмите кнопку New Menu Item на панели инструментов. Временная метка элемента меню, Untitled, появляется.

  2. Заполните поля Text и Tag для нового элемента меню. Для примера установите значение Text равным Open и установите значение тега menu_file_open. Щелкните за пределами поля, чтобы изменение вступило в эффект.

Вы также можете

  • Выберите алфавитный ускоритель клавиатуры для элемента меню с помощью всплывающего меню Accelerator. В сочетании с Ctrl это эквивалент клавиатуры для элемента меню, который не имеет дочернего меню. Обратите внимание, что некоторые ускорители могут использоваться в других целях в вашей системе и что могут возникнуть другие действия.

  • Отображение диафрагмы над пунктом меню путем проверки диафрагмы над этим элементом.

  • Отображение проверки рядом с элементом меню при первом открытии меню путем установки флажка Проверить этот элемент. Проверка указывает текущее состояние элемента меню. См. пример в разделе Добавление элементов в контекстное меню.

  • Включите этот элемент, когда меню будет открыто первым, установив флажок Включить этот элемент. Это позволяет пользователю выбрать этот элемент при первом открытии меню. Если удалить эту опцию, элемент меню будет недоступен при первом открытии меню, и пользователь не сможет его выбрать.

  • Задайте функцию обратного вызова, которая выполняется при выборе пользователем элемента меню. Если вы еще не сохранили пользовательский интерфейс, значение по умолчанию является %automatic. Когда вы сохраняете пользовательский интерфейс и если вы не изменили это поле, GUIDE автоматически устанавливает значение с помощью комбинации поля тега и имени файла пользовательского интерфейса. Для получения дополнительной информации об указании этого поля и о Элементе меню программирования см. Элементы меню.

    Кнопка View отображает коллбэк, если он есть, в редакторе. Если пользовательский интерфейс еще не сохранен, GUIDE предлагает сохранить его.

  • Откройте Property Inspector, где можно изменить все свойства меню, нажав кнопку More Properties. Для получения дополнительной информации о свойствах см. раздел «Свойства меню».

Информацию о программировании и основные примеры см. в разделах Элементах меню и Как обновить Проверку пункта меню.

Дополнительные раскрывающиеся меню

Чтобы создать дополнительные раскрывающиеся меню, используйте кнопку New Menu так же, как вы сделали, чтобы создать File меню. Для примера следующий рисунок также показывает Edit раскрывающегося меню.

Каскадные меню

Чтобы создать каскадное меню, выберите элемент меню, который будет заголовком для каскадного меню, а затем нажмите кнопку New Menu Item. В приведенном ниже примере Edit - каскадное меню.

Смотрите элемент для получения информации о элементах меню программирования.

На следующем рисунке Редактор показаны три меню, заданные для панели меню фигуры.

Когда вы запускаете приложение, заголовки меню появляются в панели меню.

Контекстные меню

Контекстное меню отображается при щелчке правой кнопкой мыши по объекту, для которого определено меню. Редактор меню позволяет вам задавать контекстные меню и связывать их с объектами в размещении. Процесс состоит из трех этапов:

Информацию об определении меню в целом см. в разделе «Меню» панели меню. Смотрите Элемент меню для получения информации об определении функций локального обратного вызова для ваших меню.

Создайте родительское меню

Все элементы контекстного меню являются дочерними пунктами меню, которое не отображается на панели меню рисунка. Чтобы определить родительское меню:

  1. Выберите вкладку Context Menus Редактор и нажмите кнопку New Context Menu на панели инструментов.

  2. Выберите меню и в поле Тег введите тег контекстного меню (axes_context_menu в этом примере).

Добавление элементов в контекстное меню

Кнопка «Новый элемент меню» используется для создания элементов меню, отображаемых в контекстном меню.

  1. Добавление Blue background color элемент меню меню путем выбора axes_context_menu и щелкните на инструменте «Создать элемент меню». Временная метка элемента меню, Untitled, появляется.

  2. Заполните поля Text и Tag для нового элемента меню. Для примера установите значение Text равным Blue background color и установите значение тега blue_background. Щелкните за пределами поля, чтобы изменение вступило в эффект.

Можно также изменить элементы меню следующими способами:

  • Отображение диафрагмы над пунктом меню путем проверки диафрагмы над этим элементом.

  • Отображение проверки рядом с элементом меню при первом открытии меню путем установки флажка Проверить этот элемент. Проверка указывает текущее состояние элемента меню. См. пример в разделе Добавление элементов в контекстное меню. См. раздел «Как обновить проверку элемента меню» для примера кода.

  • Включите этот элемент, когда меню будет открыто первым, установив флажок Включить этот элемент. Это позволяет пользователю выбрать этот элемент при первом открытии меню. Если удалить эту опцию, элемент меню будет недоступен при первом открытии меню, и пользователь не сможет его выбрать.

  • Задайте коллбэк для меню, которое выполняет действие, связанное с элементом меню. Если вы еще не сохранили пользовательский интерфейс, значение по умолчанию является %automatic. Когда вы сохраняете пользовательский интерфейс и если вы не изменили это поле, GUIDE автоматически создает коллбэк в файле кода с помощью комбинации поля тега и имени файла пользовательского интерфейса. Имя коллбэка не отображается в Callback поле редактора меню, но выбор элемента меню инициирует его.

    Можно также ввести команду в поле Callback. Это может быть любое допустимое выражение MATLAB или команда. Для примера эта команда

    set(gca, 'Color', 'y')
    устанавливает цвет фона текущей системы координат желтый. Однако предпочтительным подходом к выполнению этой операции является размещение коллбэка в файл кода. Это избегает использования gca, что не всегда надежно, когда существуют несколько рисунки или осей. Вот версия этого коллбэка, закодированная как функция в файле кода:
    function axesyellow_Callback(hObject, eventdata, handles)
    % hObject    handle to axesyellow (see GCBO)
    % eventdata  reserved - to be defined in a future version of MATLAB
    % handles    structure with handles and user data (see GUIDATA)
    set(handles.axes1,'Color','y')
    Этот код устанавливает цвет фона осей с помощью Tag axes1 независимо от того, к какому объекту присоединено контекстное меню.

    Если вы вводите значение коллбэка в редакторе меню, он переопределяет коллбэк для элемента в файле кода, если он сохранен. Если вы удаляете значение, введенное в поле Callback, коллбэк для элемента в файле кода выполняется при выборе пользователем этого элемента в пользовательском интерфейсе.

    Для получения дополнительной информации об указании этого поля и о Элементе меню программирования см. Элементы меню.

    Кнопка View отображает коллбэк, если он есть, в редакторе. Если пользовательский интерфейс еще не сохранен, GUIDE предлагает сохранить его.

  • Откройте Property Inspector, где можно изменить все свойства меню, кроме коллбэков, нажав кнопку More Properties. Подробные сведения об этих свойствах см. в разделе Свойства ContextMenu.

Связать контекстное меню с объектом

  1. В редакторе размещений выберите объект, для которого вы определяете контекстное меню.

  2. Используйте Property Inspector, чтобы задать ContextMenu этого объекта свойство имени необходимого контекстного меню.

Следующий рисунок показывает ContextMenu свойство для axes объект с Tag свойства axes1.

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

Смотрите How to Update a Menu Item Check для информации о программировании и основных примеров.

Похожие темы