exponenta event banner

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. Действие определяется как дескриптор функции или как команда MATLAB. Если действие определено как дескриптор функции, определение функции должно определять два входа. Эти входные данные являются matlab.system.display.ActionData объект и экземпляр объекта System, который может использоваться для вызова метода.

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'.

Примеры

свернуть все

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

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

При указании объекта System в блоке 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