matlab.system.display.Action class

Пакет: 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 имя аргумента и Value соответствующее значение. Name должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.

Свойства

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

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

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

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

  • 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 (Simulink), получившееся диалоговое окно блока появляется следующим.

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

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