uicontextmenu

Создайте компонент контекстного меню

Описание

cm = uicontextmenu создает контекстное меню в текущей фигуре и возвращает ContextMenu объект. Если фигура не существует, то MATLAB® вызывает figure функция, чтобы создать ту.

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

  • Присвойте контекстное меню компоненту пользовательского интерфейса или графическому объекту на том же рисунке.

  • Создайте по крайней мере один дочерний Menu объект в контекстном меню.

пример

cm = uicontextmenu(parent) создает контекстное меню на заданном родительском рисунке. Родительский элемент может быть фигурой, созданной с любым uifigure или figure функция.

пример

cm = uicontextmenu(___,Name,Value) создает контекстное меню со значениями свойств, заданными с помощью одного или нескольких аргументов пары "имя-значение". Задайте пары "имя-значение" с любым из предыдущих синтаксисов.

Примеры

свернуть все

Создайте контекстное меню с двумя подменю в фигуре пользовательского интерфейса. Присвойте контекстное меню самой фигуре путем установки ContextMenu свойство фигуры к ContextMenu объект. Чтобы просмотреть контекстное меню, щелкните правой кнопкой где угодно по окну рисунка.

fig = uifigure;

cm = uicontextmenu(fig);
m1 = uimenu(cm,'Text','Menu1');
m2 = uimenu(cm,'Text','Menu2');

fig.ContextMenu = cm;

Создайте контекстное меню с действиями, соответствующими древовидному компоненту. Присвойте контекстное меню древовидным узлам верхнего уровня в дереве.

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

fig = uifigure;

tree = uitree(fig,'Position',[20 200 175 100]);

category1 = uitreenode(tree,'Text','Runners');
r1 = uitreenode(category1,'Text','Joe');
r2 = uitreenode(category1,'Text','Linda');

category2 = uitreenode(tree,'Text','Cyclists');
c1 = uitreenode(category2,'Text','Rajeev');

category3 = uitreenode(tree,'Text','Hikers');
h1 = uitreenode(category3,'Text','Jack');

category4 = uitreenode(tree,'Text','Swimmers');
s1 = uitreenode(category4,'Text','Logan');

Создайте контекстное меню с тремя пунктами меню. Для последнего пункта меню создайте четыре подменю.

cm = uicontextmenu(fig);
m1 = uimenu(cm,'Text','Expand All');
m2 = uimenu(cm,'Text','Collapse All');
m3 = uimenu(cm,'Text','Scroll To...');

sbm1 = uimenu(m3,'Text','Runners');
sbm2 = uimenu(m3,'Text','Cyclists');
sbm3 = uimenu(m3,'Text','Hikers');
sbm4 = uimenu(m3,'Text','Swimmers');

Затем присвойте контекстное меню древовидным узлам верхнего уровня путем установки ContextMenu свойство каждого узла к ContextMenu объект.

category1.ContextMenu = cm;
category2.ContextMenu = cm;
category3.ContextMenu = cm;
category4.ContextMenu = cm;

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

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

Создайте контекстное меню, которое распечатывает сообщение в Командном окне каждый раз, когда вы открываете его.

Постройте график на традиционном рисунке. Затем создайте контекстное меню с одним пунктом меню и присвойте его линейному графику. Создайте ContextMenuOpeningFcn функция обратного вызова, которая отображает вывод в Командном окне каждый раз контекстное меню, открывается.

f = figure;
p = plot(1:10);

cm = uicontextmenu(f);
m = uimenu(cm,'Text','Menu1');
cm.ContextMenuOpeningFcn = @(src,event)disp('Context menu opened');

p.ContextMenu = cm;

Чтобы просмотреть контекстное меню, щелкните правой кнопкой по сюжетной линии. Когда контекстное меню открывается, Командное окно также отображает сообщение: Context menu opened.

The context menu with a menu item called "Menu1" displays on the plot line.

Входные параметры

свернуть все

Родительская фигура в виде Figure объект, созданный с любым uifigure или figure функция. Если родительская фигура не задана, то MATLAB вызывает figure функция, чтобы создать ту, которая служит родительским элементом.

Аргументы в виде пар имя-значение

Задайте дополнительные разделенные запятой пары Name,Value аргументы. Name имя аргумента и Value соответствующее значение. Name должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.

Пример: 'ContextMenuOpeningFcn',@myfunction задает myfunction быть функцией, которая выполняется, когда пользователь взаимодействует с контекстным меню.

Свойства, перечисленные здесь, являются только подмножеством, поскольку полный список видит ContextMenu Properties.

Контекстное меню, открывающее функцию обратного вызова в виде одного из этих значений:

  • Указатель на функцию.

  • Массив ячеек, в котором первый элемент является указателем на функцию. Последующие элементы массива ячеек являются аргументами, которые передаются в функцию обратного вызова.

  • Вектор символов, содержащий допустимое выражение MATLAB (не рекомендуемый). MATLAB оценивает это выражение в базовом рабочем пространстве.

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

Дочерние элементы контекстного меню, возвращенные как пустой 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;
Context menu with three menu items.

cm.Children возвращает список пунктов меню в обратном порядке.

cm.Children
ans = 

  3×1 Menu array:

  Menu    (Menu3)
  Menu    (Menu2)
  Menu    (Menu1)

Объекты с HandleVisibility набор свойств к 'off' не перечислены в Children свойство.

Чтобы добавить дочерний элемент в этот список, установите Parent свойство другого Menu возразите против этого ContextMenu объект.

Советы

  • Чтобы отобразить контекстное меню в интерактивном режиме в запущенном приложении, это должно:

    • Имейте по крайней мере один пункт меню.

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

  • Чтобы открыть контекстное меню программно, используйте open функция. Контекстное меню должно быть дочерним элементом фигуры, созданной с uifigure функция. Чтобы отобразить контекстное меню, это должно иметь по крайней мере один пункт меню, созданный с uimenu функция.

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

Функции

Свойства

Представлено до R2006a