open

Откройте контекстное меню в местоположении на фигуре пользовательского интерфейса

Синтаксис

Описание

пример

open(cm,x,y) открывает контекстное меню cm в заданных (x, y) координатах в пользовательской фигуре пользовательского интерфейса, с которой он связан. Координаты измеряются в пикселях из левого нижнего угла рисунка. Рисунок должен быть таким, который создается с uifigure функция.

open(cm,coord) задает пиксельные координаты как двухэлементный вектор coord. Для примера, open(cm,[100 150]) открывает контекстное меню cm в координатах (100,150).

Примеры

свернуть все

Создайте фигуру пользовательского интерфейса. Создайте контекстное меню с двумя подменю и присвойте его фигуре пользовательского интерфейса.

fig = uifigure;

cm = uicontextmenu(fig);
m1 = uimenu(cm,'Text','Import Data');
m2 = uimenu(cm,'Text','Export Data');

fig.ContextMenu = cm;

Затем откройте контекстное меню в расположении (250,250).

open(cm,250,250)

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

Сначала создайте программный файл с именем openCtxtMenu.m. В программном файле:

  • Создайте оси пользовательского интерфейса в фигуре пользовательского интерфейса и постройте график данных в осях.

  • Создайте контекстное меню с одним подменю на фигуре пользовательского интерфейса.

  • Установите WindowButtonDownFcn свойство функции обратного вызова onButtonDown.

  • Создайте функцию обратного вызова onButtonDown. В нем определите, является ли выбор щелчком правой кнопкой мыши, запросив SelectionType свойство фигуры пользовательского интерфейса. Когда происходит щелчок правой кнопкой мыши, получите координаты X и Y указателя мыши из CurrentPoint свойство. Координаты X и Y являются первым и вторым элементами возвращаемого вектора. Затем откройте контекстное меню в этом месте. При появлении других типов выбора отобразится сообщение в Командном окне.

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

function openCtxtMenu
fig = uifigure;
ax = uiaxes(fig);
plot(ax,magic(5));

cm = uicontextmenu(fig);
m = uimenu(cm,'Text','Menu1');

fig.WindowButtonDownFcn = @onButtonDown;

    function onButtonDown(src,event)
        clickType = src.SelectionType;

        switch clickType
            case 'alt'
            x = src.CurrentPoint(1);
            y = src.CurrentPoint(2);
            open(cm,x,y)

            otherwise
            disp('Right-click to view context menu')
        end

    end

end

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

свернуть все

Объект контекстного меню, созданный с помощью uicontextmenu функция.

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

y -cordinate, заданный в виде целого числа в пикселях от нижнего ребра рисунка. Если вы задаете значение, которое превышает высоту рисунка, то контекстное меню будет невидимо.

Пиксельные координаты, заданные как двухэлементный вектор-строка с целочисленными значениями.

Пример: [100 150] задает пиксельные координаты (100,150).

Совет

  • Закройте контекстное меню, нажав клавишу или щелкнув мышью за пределами контекстного меню. Вы не можете программно закрыть контекстное меню.

Алгоритмы

ContextMenuOpeningFcn функции обратного вызова не выполняются при вызове open функция. Функции обратного вызова инициируются только взаимодействиями пользователя.

См. также

Введенный в R2020a