exponenta event banner

открытый

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

Описание

пример

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, заданная как целое число в пикселях от левого края фигуры пользовательского интерфейса. Если указать значение, превышающее ширину фигуры, контекстное меню не будет отображаться.

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

Координаты пикселей, заданные как двухэлементный вектор строки целочисленных значений.

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

Совет

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

Алгоритмы

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

См. также

Представлен в R2020a