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

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

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

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