Добавьте компоненты пользовательского интерфейса к App Designer программно

Компоненты Most UI доступны в Component Library App Designer для вас, чтобы перетащить мышью на холст. Иногда, вы можете должны быть добавить компоненты программно в Представлении кода. Вот несколько общих ситуаций:

  • Создание компонентов, которые не доступны в Component Library. Например, приложение, которое отображает диалоговое окно, должно вызвать соответствующую функцию, чтобы отобразить диалоговое окно.

  • Создание компонентов динамически согласно условиям во время выполнения.

Когда вы добавляете компоненты UI программно, необходимо вызвать соответствующую функцию, чтобы создать компонент, присвоить обратный вызов компоненту, и затем записать обратный вызов как функцию помощника.

Создайте компонент и присвойте обратный вызов

Вызовите функцию, которая создает компонент из существующего обратного вызова (для списка функций компонента, см. Приложения Разработки в App Designer). Обратный вызов StartupFcn является хорошим местом, чтобы создать компоненты, потому что тот обратный вызов запускается, когда приложение запускает. В других случаях вы можете создать компоненты в различной функции обратного вызова. Например, если вы хотите отобразить диалоговое окно, когда пользователь нажимает кнопку, вызовите функцию диалогового окна из функции обратного вызова кнопки.

Когда вы вызовете функцию, чтобы создать компонент, задайте фигуру или один из его дочерних контейнеров как родительский объект. Например, эта команда создает кнопку и задает фигуру как родительский объект. В этом случае у фигуры есть имя по умолчанию, которое присваивает App Designer (app.UIFigure Фигура пользовательского интерфейса.

b = uibutton(app.UIFigure);

Затем, задайте свойство обратного вызова компонента как указатель на функцию формы @app.callbackname. Например, это наборы команд свойство ButtonPushedFcn кнопки b к функции обратного вызова под названием mybuttonpress.

b.ButtonPushedFcn = @app.mybuttonpress;

Запишите обратный вызов

Запишите функцию обратного вызова для компонента как частная функция помощника. Функция должна иметь app, src и event в качестве первых трех аргументов. Вот пример обратного вызова, записанного как частная функция помощника.

methods (Access = private)
    
        function mybuttonpress(app,src,event)
            disp('Have a nice day!');
        end
        
end

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

methods (Access = private)
    
        function addxy(app,src,event,x,y)
            disp(x + y);
        end
        
end

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

b.ButtonPushedFcn = {@app.addxy,10,20};

Пример: Поле диалогового окна подтверждения с закрыть функцией

Это приложение показывает, как отобразить поле диалогового окна подтверждения, которое выполняет обратный вызов, когда диалоговое окно закрывается.

Когда пользователь кликает по близкой кнопке (X) окна, диалоговое окно отображается, чтобы подтвердить, что пользователь хочет закрыть приложение. Когда пользователь отклоняет диалоговое окно, обратный вызов CloseFcn выполняется.

Пример: Приложение, которое Заполняет Древовидные Узлы На основе Файла данных

Это приложение показывает, как динамически добавить древовидные узлы во время выполнения. Три узла больницы существуют в дереве перед выполнением приложения. Однако, во время выполнения, приложение добавляет несколько дочерних узлов под каждым именем больницы. Количество дочерних узлов и метки на дочерних узлах определяются содержимым электронной таблицы patients.xls.

Когда пользователь кликает по терпеливому имени в дереве, Терпеливые информационные данные отображений панели, такие как возраст, пол и состояние здоровья. Приложение хранит изменения в данных в табличном массиве.

Похожие темы

Была ли эта тема полезной?