matlab.system.display. Класс действия

Пакет: matlab.system.display
Суперклассы:

Пользовательская кнопка

Синтаксис

matlab.system.display. Действие (действие)
matlab.system.display. Действие (действие, Имя, Значение)

Описание

matlab.system.display. Действие (действие) задает кнопку, чтобы отобразиться на блоке MATLAB System. Эта кнопка выполняет функцию путем запуска Системы object™ метод или вызова любой функции MATLAB® или кода.

Типичная функция кнопок запускает фигуру. Запущенная фигура разъединяется от блочного диалогового окна. Изменения в блоке не синхронизируются отображенной фигуре.

Вы задаете matlab.system.display.Action в рамках метода getPropertyGroupsImpl в вашем файле определения класса. Можно задать несколько кнопок с помощью отдельных экземпляров matlab.system.display.Action в файле определения класса.

matlab.system.display. Действие (действие, Имя, Значение) включает Имя, аргументы пары Значения, которые можно использовать, чтобы задать любые свойства.

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

action

Меры, принятые, когда пользователь нажимает заданную кнопку на диалоговом окне блока MATLAB System. Действие задано как указатель на функцию или как команда MATLAB. Если вы задаете действие как указатель на функцию, функциональное определение должно задать два входных параметра. Эти входные параметры являются объектом matlab.system.display.ActionData и экземпляром Системного объекта, который может использоваться, чтобы вызвать метод.

Объект matlab.system.display.ActionData является объектом обратного вызова для действия отображения. Вы используете свойство UserData matlab.system.display.ActionData хранить персистентные данные, такие как указатель фигуры.

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

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

Свойства

Вы задаете эти свойства как часть входного параметра с помощью аргументов пары Name,Value. Опционально, можно задать их использующий object.property синтаксис свойств.

  • ActionCalledFcn — Действие, чтобы взять, когда кнопка нажимается. Вы не можете задать это свойство с помощью Аргумента в виде пар "имя-значение".

  • Метка Текст, чтобы отобразиться на кнопке. Значение по умолчанию является пустым символьным вектором.

  • Описание Текст для подсказки кнопки. Значение по умолчанию является пустым символьным вектором.

  • Placement — Вектор символа, указывающий, где на отдельной строке в группе свойства, чтобы поместить кнопку. Допустимыми значениями является 'first', 'last' или имя свойства. Если вы задаете имя свойства, кнопка помещается выше того свойства. Значением по умолчанию является 'last'.

  • Alignment — Вектор символа, указывающий, как выровнять кнопку. Допустимыми значениями является 'left' и 'right'. Значением по умолчанию является 'left'.

Примеры

свернуть все

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

methods(Static,Access = protected)
  function group = getPropertyGroupsImpl
  group = matlab.system.display.Section(mfilename('class'));
  group.Actions = matlab.system.display.Action(@(~,obj)...
      visualize(obj),'Label','Visualize');
  end
end
    
methods
  function obj = PlotRamp(varargin)
    setProperties(obj,nargin,varargin{:});
  end
        
  function visualize(obj)
    figure;
    d = 1:obj.RampLimit;
    plot(d);
  end
end

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

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

methods(Static,Access = protected)
  function group = getPropertyGroupsImpl
    group = matlab.system.display.Section(mfilename('class'));
    group.Actions = matlab.system.display.Action(@(actionData,obj)...
       visualize(obj,actionData),'Label','Visualize');
  end
end
    
methods
  function obj = ActionDemo(varargin)
    setProperties(obj,nargin,varargin{:});
  end
        
  function visualize(obj,actionData)
    f = actionData.UserData;
    if isempty(f) || ~ishandle(f)
      f = figure;
      actionData.UserData = f;
    else
        figure(f); % Make figure current
    end
        
    d = 1:obj.RampLimit;
    plot(d);
  end
end

Была ли эта тема полезной?