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

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

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

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

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

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

Вызовите функцию, которая создает компонент из существующего коллбэка (для списка функций компонента, см. Приложения Разработки в 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.

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

Похожие темы

Для просмотра документации необходимо авторизоваться на сайте