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

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

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

Синтаксис

matlab.system.display.Action(action)
matlab.system.display.Action(action,Name,Value)

Описание

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

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

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

matlab.system.display.Action(action,Name,Value) включает аргументы пары Name,Value, которые можно использовать, чтобы задать любые свойства.

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

action

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

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

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

Укажите необязательные аргументы в виде пар ""имя, значение"", разделенных запятыми. Имя (Name) — это имя аргумента, а значение (Value) — соответствующее значение. Name должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: 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