uicontextmenu

Создать контекстное меню

Используйте эту функцию только с GUIDE, или с фигурами, созданными с помощью figure функция.

Описание

пример

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

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

пример

c = uicontextmenu(parent) создает контекстное меню в заданной родительской фигуре.

Примечание

Определение одного только родительского элемента не делает контекстное меню доступным в пользовательском интерфейсе. Необходимо также сделать эти шаги:

  • Присвойте контекстное меню компоненту с помощью UIContextMenu свойство.

  • Создайте по крайней мере один дочерний uimenu для uicontextmenu.

Смотрите раздел Tips для получения дополнительной информации.

c = uicontextmenu(parent,Name,Value) задает родительскую фигуру для контекстного меню и одного или нескольких аргументов пары "имя-значение".

Примеры

свернуть все

Задайте значение для UIContextMenu объекта линии свойство присоединить uicontextmenu к той линии. Контекстное меню становится видимым, когда пользователь щелкает правой кнопкой по линии. Например, создайте программный файл под названием myprogram.m это создает график и присоединяет uicontextmenu к сюжетной линии:

function myprogram

    f = figure('WindowStyle','normal');
    ax = axes;
    x = 0:100;
    y = x.^2;

    plotline = plot(x,y);
    c = uicontextmenu;

    % Assign the uicontextmenu to the plot line
    plotline.UIContextMenu = c;

    % Create child menu items for the uicontextmenu
    m1 = uimenu(c,'Label','dashed','Callback',@setlinestyle);
    m2 = uimenu(c,'Label','dotted','Callback',@setlinestyle);
    m3 = uimenu(c,'Label','solid','Callback',@setlinestyle);

        function setlinestyle(source,callbackdata)
            switch source.Label
                case 'dashed'
                    plotline.LineStyle = '--';
                case 'dotted'
                    plotline.LineStyle = ':';
                case 'solid'
                    plotline.LineStyle = '-';
            end
        end
end

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

Выбор элемента из контекстного меню изменяет стиль линии.

Задайте Parent значение свойства любого uimenu превращать его в подменю. Например, создайте программный файл под названием myprogram2 это создает контекстное меню, содержащее одно меню верхнего уровня и два элемента подменю:

function myprogram2
    f = figure('WindowStyle','normal');
    c = uicontextmenu(f);

    % Assign the uicontextmenu to the figure
    f.UIContextMenu = c;

    % Create child menu of the uicontextmenu
    topmenu = uimenu('Parent',c,'Label','Change Color');
    
    % Create submenu items
    m1 = uimenu('Parent',topmenu,'Label','Red','Callback',@changecolor);
    m2 = uimenu('Parent',topmenu,'Label','Green','Callback',@changecolor);

    function changecolor(source,callbackdata)
        switch source.Label
            case 'Red'
                f.Color = [1.0 0.80 0.80];
            case 'Green'
                f.Color = [0.80 1.0 0.80];
        end
    end
end

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

Выбор цвета из контекстного меню изменяет цвет окна.

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

свернуть все

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

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

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

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

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

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

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

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

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

Типы данных: function_handle | cell | char

Дочерние элементы меню, возвращенные как пустой GraphicsPlaceholder или 1D массив Menu объекты. Дочерние элементы меню являются другой этой функцией меню как подменю.

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

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

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

Советы

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

  • Вы присваиваете контекстное меню компоненту с помощью UIContextMenu свойство. Присвоенный компонент должен быть дочерним элементом той же фигуры как контекстное меню.

  • Вы создаете по крайней мере один дочерний uimenu для uicontextmenu.

Например:

f = figure;
c = uicontextmenu(f);
% Create a new component and assign the uicontextmenu to it
b = uicontrol(f,'UIContextMenu',c);
% Create a child menu for the uicontextmenu
m = uimenu('Parent',c,'Label','Disable');

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

Функции

Свойства

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