Создайте и запустите простое программное приложение

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

  1. Спроектируйте размещение приложения путем создания основного окна рисунка, разметки компонентов пользовательского интерфейса в нем и конфигурирования внешнего вида компонентов путем установки свойств.

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

  3. Запустите приложение, чтобы проверить, что ваше приложение выглядит и ведет себя как ожидалось.

Задайте функцию главного приложения

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

Создайте новую функцию с именем simpleApp и сохраните его в файл с именем simpleApp.m в папке, которая находится на пути MATLAB. Обеспечьте контекст и инструкции для использования приложения путем добавления текста справки в функцию. Пользователи видят этот текст справки путем ввода help simpleApp в командной строке.

function simpleApp
% SIMPLEAPP Interactively explore plotting functions
%   Choose the function used to plot the sample data to see the
%   differences between surface plots, mesh plots, and waterfall plots

end

Запишите весь свой код приложения в simpleApp.m файл. Чтобы просмотреть полный пример кода, смотрите Запуск Приложение.

Создайте окно UI Figure

Каждое программное приложение требует, чтобы окно UI Figure служило контейнером первичного приложения. Это - окно, которое появляется, когда пользователь запускает ваше приложение, и это содержит компоненты пользовательского интерфейса, которые составляют приложение. Создайте окно UI Figure, сконфигурированное специально для создания приложений путем вызова uifigure функция. Возвратите получившийся Figure возразите как переменная так, чтобы можно было получить доступ к объекту позже в коде. Можно изменить размер, внешний вид и поведение окна рисунка путем установки свойств фигуры с помощью записи через точку.

В этом примере добавьте этот код в simpleApp функция, чтобы создать окно UI Figure и задать его заголовок.

fig = uifigure;
fig.Name = "My App";

Управляйте размещением приложения

Управляйте положением и размером компонентов пользовательского интерфейса в вашем окне рисунка с помощью менеджера по размещению сетки. Это позволяет вам размечать свои компоненты пользовательского интерфейса в сетке путем определения строки и столбца для каждого компонента.

Добавьте менеджера по размещению сетки в свое приложение при помощи uigridlayout функция. Создайте сетку в окне рисунка путем передачи в fig в качестве первого аргумента, и затем задают размер сетки. В этом примере создайте сетку 2 на 2 путем добавления этого кода в simpleApp функция.

gl = uigridlayout(fig,[2 2]);

Управляйте размером каждой строки и столбца сетки путем установки RowHeight и ColumnWidth свойства менеджера по размещению сетки. В этом примере гарантируйте, что центр вашего приложения является отображенными на графике данными. Укажите, что верхняя строка приложения 30 пикселей высотой, и что вторая строка заполняет остальную часть окна рисунка. Соответствуйте ширине первого столбца к содержимому, которое это содержит.

gl.RowHeight = {30,'1x'};
gl.ColumnWidth = {'fit','1x'};

Для получения дополнительной информации о том, как разметить приложения, смотрите, Размечают Приложения Программно.

Создайте и положение компоненты пользовательского интерфейса

Пользователи взаимодействуют с вашим приложением путем взаимодействия с различными компонентами пользовательского интерфейса, такими как кнопки, выпадающие списки или поля редактирования. Для списка всех доступных компонентов пользовательского интерфейса смотрите Компоненты App Building.

Этот пример использует три различных компонента пользовательского интерфейса:

  • Метка, чтобы предоставить инструкцию

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

  • Набор осей, чтобы отобразить данные на графике по

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

lbl  = uilabel(gl);
dd = uidropdown(gl);
ax = uiaxes(gl);

После того, как вы создаете компоненты для своего приложения, располагаете их в правильные строки и столбцы сетки. Для этого установите Layout свойство каждого компонента. Расположите метку в верхний левый угол сетки и выпадающего в верхнем правом углу. Сделайте Axes возразите охватывают оба столбца во второй строке путем определения Layout.Column как двухэлементный вектор.

% Position label
lbl.Layout.Row = 1;
lbl.Layout.Column = 1;
% Position drop-down
dd.Layout.Row = 1;
dd.Layout.Column = 2;
% Position axes
ax.Layout.Row = 2;
ax.Layout.Column = [1 2];

Сконфигурируйте внешний вид компонента пользовательского интерфейса

Каждый объект компонента пользовательского интерфейса имеет много свойств, которые определяют его внешний вид. Чтобы изменить свойство, установите его с помощью записи через точку. Для списка свойств компонентов смотрите соответствующую страницу свойств. Например, DropDown Properties перечисляет все свойства выпадающего компонента.

Измените текст метки, чтобы обеспечить контекст для выпадающих опций путем установки Text свойство.

lbl.Text = "Choose Plot Type:";

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

dd.Items = ["Surf","Mesh","Waterfall"];
dd.Value = "Surf";

Поведение приложения программы

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

В этом примере программируйте свое приложение, чтобы обновить график, когда пользователь выберет новый выпадающий элемент. В simpleApp.m файл, после simpleApp функционируйте, задайте функцию обратного вызова под названием changePlotType. MATLAB автоматически передает два входных параметра каждой функции обратного вызова, когда коллбэк инициирован. Эти входные параметры часто называют src и event. Первый аргумент содержит компонент, который инициировал коллбэк, и второй аргумент содержит информацию о взаимодействии с пользователем. Задайте changePlotType принять src и event в дополнение к третьему входному параметру, который задает оси, чтобы построить на. В функции обратного вызова получите доступ к новому выпадающему значению с помощью event аргумент и затем использует это значение, чтобы определить, как обновить данные о графике. Вызовите соответствующую функцию построения графика и задайте входные оси как оси, чтобы построить на.

function changePlotType(src,event,ax)
type = event.Value;
switch type
    case "Surf"
        surf(ax,peaks);
    case "Mesh"
        mesh(ax,peaks);
    case "Waterfall"
        waterfall(ax,peaks);
end
end

Сопоставлять changePlotType функция с выпадающим компонентом, в simpleApp функция, набор ValueChangedFcn свойство выпадающего компонента быть массивом ячеек. Первым элементом массива ячеек является указатель на changePlotType функция обратного вызова. Вторым элементом является Axes объект отобразить данные на графике по. Когда пользователь приложения выбирает выпадающую опцию, MATLAB вызывает функцию обратного вызова и передает в источнике, событии и аргументах осей. Функция обратного вызова затем обновляет график в приложении.

dd.ValueChangedFcn = {@changePlotType,ax};

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

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

surf(ax,peaks);

Выполнение приложения

После добавления всех элементов приложения, вашего simpleApp функция должна выглядеть так:

function simpleApp
% SIMPLEAPP Interactively explore plotting functions
%   Choose the function used to plot the sample data to see the
%   differences between surface plots, mesh plots, and waterfall plots

% Create figure window
fig = uifigure;
fig.Name = "My App";

% Manage app layout
gl = uigridlayout(fig,[2 2]);
gl.RowHeight = {30,'1x'};
gl.ColumnWidth = {'fit','1x'};

% Create UI components
lbl = uilabel(gl);
dd = uidropdown(gl);
ax = uiaxes(gl);

% Lay out UI components
% Position label
lbl.Layout.Row = 1;
lbl.Layout.Column = 1;
% Position drop-down
dd.Layout.Row = 1;
dd.Layout.Column = 2;
% Position axes
ax.Layout.Row = 2;
ax.Layout.Column = [1 2];

% Configure UI component appearance
lbl.Text = "Choose Plot Type:";
dd.Items = ["Surf" "Mesh" "Waterfall"];
dd.Value = "Surf";
surf(ax,peaks);

% Assign callback function to drop-down
dd.ValueChangedFcn = {@changePlotType,ax};
end

% Program app behavior
function changePlotType(src,event,ax)
type = event.Value;
switch type
    case "Surf"
        surf(ax,peaks);
    case "Mesh"
        mesh(ax,peaks);
    case "Waterfall"
        waterfall(ax,peaks);
end
end

Просмотрите текст справки для своего приложения.

help simpleApp
  SIMPLEAPP Interactively explore plotting functions
    Choose the function used to plot the sample data to see the
    differences between surface plots, mesh plots, and waterfall plots

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

simpleApp

Figure My App contains an axes object and another object of type uigridlayout. The axes object contains an object of type surface.

Похожие темы