setup

Класс: matlab.ui.componentcontainer.ComponentContainer
Пакет: matlab.ui.componentcontainer

Настройте экземпляр контейнерного подкласса компонента

Синтаксис

setup(obj)

Описание

setup(obj) устанавливает начальное состояние компонента пользовательского интерфейса. Это выполняется однажды, когда объект компонента пользовательского интерфейса создается. Любые значения свойств, переданные как аргументы пары "имя-значение" методу конструктора компонента пользовательского интерфейса, присвоены после setup метод выполняется.

Задайте этот метод, чтобы выполнить код инициализации для каждого нового экземпляра вашего класса. Например, можно использовать этот метод, чтобы создать базовые графические объекты и установить начальные значения свойств на тех объектах.

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

развернуть все

Объект класса, который наследовался matlab.graphics.componentcontainer.ComponentContainer базовый класс.

Примеры

развернуть все

Задайте класс под названием IPAddressComponent это создает собственный компонент для того, чтобы ввести четыре значения, чтобы сформировать IP-адрес.

Чтобы задать класс, создайте файл под названием IPAddressComponent.m это содержит следующее определение класса с этими функциями:

  • Value общественная собственность, которая хранит IP-адрес.

  • NumericField и GridLayout частные свойства, которые помещают четыре числовых поля редактирования в горизонтальную строку.

  • setup метод, который инициализирует NumericField и GridLayout.

  • update метод, который обновляет NumericField значения, когда IP-адрес изменяется.

  • handleNewValue метод, который устанавливает Value свойство на основе значений 4 числовых полей редактирования.

classdef IPAddressComponent < matlab.ui.componentcontainer.ComponentContainer
    % IPAddressComponent a set of 4 edit fields for IP Address input
    properties
        Value (1,4) {mustBeNonnegative, mustBeInteger, mustBeLessThanOrEqual(Value, 255)} = [192 168 1 2];
    end
    
    events (HasCallbackProperty, NotifyAccess = protected)
        ValueChanged % ValueChangedFcn callback property will be generated
    end

    
    properties (Access = private, Transient, NonCopyable)
        NumericField (1,4) matlab.ui.control.NumericEditField
        GridLayout matlab.ui.container.GridLayout
    end
    
    methods (Access=protected)
        function setup(obj)
            % Set the initial position of this component
            obj.Position = [100 100 150 22];
            
            % Layout
            obj.GridLayout = uigridlayout(obj,[1,5], ...
                'RowHeight',{22},'ColumnWidth',{30,30,30,30,22},...
                'Padding',0,'ColumnSpacing',2);
            
            % Building blocks
            for k = 1:4
                obj.NumericField(k) = uieditfield(obj.GridLayout, 'numeric',...
                    'Limits', [0 255], 'RoundFractionalValues', true, ...
                    'FontName', 'Courier New', 'FontWeight', 'bold', ...
                    'ValueChangedFcn',@(o,e) obj.handleNewValue());
            end
          
        end
        
        function update(obj)
            % Update view
            for k = 1:4
                obj.NumericField(k).Value = obj.Value(k);
            end
        end
    end
       
    methods (Access=private)
        function handleNewValue(obj)
            obj.Value = [obj.NumericField.Value];  
            
            % Execute the event listeners and the ValueChangedFcn callback property
            notify(obj,'ValueChanged');
        end
    end
end

Затем создайте компонент путем вызова IPAddressComponent метод конструктора, который обеспечивается ComponentContainer класс, и возвращает объект как h. Задайте функцию, которая отображает новый IP-адрес в Командном окне, когда значение компонента изменяется.

 h = IPAddressComponent;
 h.ValueChangedFcn = @(o,e) disp(['Value changed to: ', num2str(h.Value)]);

Введите IP-адрес 192.168.1.10 в поля редактирования. MATLAB отображает обновленный IP-адрес в Командном окне.

Введенный в R2020b