Создание простого приложения Используя GUIDE

Примечание

Эта тема применяется к приложениям, создаваемым с помощью GUIDE. Для альтернативных способов создать приложения, смотрите Способы Создать Приложения.

Этот пример показывает, как использовать GUIDE, чтобы создать приложение, которое имеет простой пользовательский интерфейс (пользовательский интерфейс), такой как один показанный здесь.

Последующие разделы проводят вас по процессу создавания этого приложения.

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

copyfile(fullfile(docroot, 'techdoc','creating_guis',...
   'examples','simple_gui*.*')),fileattrib('simple_gui*.*', '+w');
guide simple_gui.fig;
edit simple_gui.m
Щелкните по кнопке Run, чтобы запустить приложение.

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

  1. ИНСТРУКЦИЯ путем ввода guide в посдказке MATLAB.

  2. В диалоговом окне GUIDE Quick Start выберите шаблон Blank GUI (Default), и затем нажмите ОК.

  3. Отобразите имена компонентов в палитре элементов:

    1. Выберите File> Preferences> GUIDE.

    2. Выберите имена Show в палитре элементов.

    3. Нажать ОК.

Установка размера окна в GUIDE

Установите размер окна путем изменения размеров области сетки в Редакторе макетов. Кликните по нижнему правому углу и перетащите его, пока холст не будет приблизительно 3 дюйма высотой и 4 дюйма шириной. При необходимости сделайте холст больше.

Размещение пользовательский интерфейс

Добавьте, выровняйте и маркируйте компоненты в пользовательском интерфейсе.

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

  2. Добавьте остающиеся компоненты к пользовательскому интерфейсу.

    • Область статического текста

    • Всплывающее меню

    • Оси

    Расположите компоненты как показано в следующей фигуре. Измените размер компонента осей к приблизительно дюймам 2 на 2.

Выравнивание компонентов

Если несколько компонентов имеют тот же родительский элемент, можно использовать Инструмент Выравнивания, чтобы выровнять их друг другу. Выровнять эти три кнопки:

  1. Выберите все три кнопки путем нажатия Ctrl и нажатия на них.

  2. Выберите Tools> Align Objects.

  3. Установите эти настройки в Инструменте Выравнивания:

    • Выровненный по левому краю в горизонтальном направлении.

    • Интервал 20 пикселей между кнопками в вертикальном направлении.

  4. Нажать ОК.

Маркировка кнопок

Каждая из этих трех кнопок задает тип графика: surf, mesh и контур. Этот раздел показывает вам, как маркировать кнопки теми опциями.

  1. Выберите View> Property Inspector.

  2. В области размещения кликните по главной кнопке.

  3. В Инспекторе свойств выберите свойство String, и затем замените существующее значение на слово Surf.

  4. Нажмите клавишу ENTER. Метка кнопки изменяется на Surf.

  5. Кликните по каждой из остающихся кнопок в свою очередь и повторных шагов 3 и 4. Маркируйте среднюю кнопку Mesh и нижнюю кнопку Contour.

Листинг элементов всплывающего меню

Всплывающее меню обеспечивает выбор трех наборов данных: peaks, мембрана и sinc. Эти наборы данных соответствуют функциям MATLAB того же имени. Этот раздел показывает вам, как перечислить те наборы данных как выбор в поп-меню.

  1. В области размещения кликните по всплывающему меню.

  2. В Инспекторе свойств нажмите кнопку, следующую за String. Отображения диалогового окна String.

  3. Замените существующий текст на имена этих трех наборов данных: peaks, мембрана и sinc. Нажмите Enter, чтобы переместиться в следующую строку.

  4. Когда вы заканчиваете редактировать элементы, нажимаете ОК.

    Первый элемент в вашем списке, peaks, появляется во всплывающем меню в области размещения.

Изменение статического текста

В этом пользовательском интерфейсе статический текст служит меткой для всплывающего меню. Этот раздел показывает вам, как изменить статический текст, чтобы считать Select Data.

  1. В области размещения кликните по статическому тексту.

  2. В Инспекторе свойств нажмите кнопку, следующую за String. В диалоговом окне String, которое отображается, замените существующий текст на фразу  Select Data.

  3. Нажать ОК.

    Фраза Select Data появляется в компоненте статического текста выше всплывающего меню.

Сохранение размещения

Когда вы сохраняете размещение, GUIDE создает два файла, файл FIG и файл кода. Файл FIG, с дополнительным .fig, является двоичным файлом, который содержит описание размещения. Файл кода, с дополнительным .m, содержит функции MATLAB, которые управляют поведением приложения.

  1. Сохраните и запустите свою программу путем выбора Tools> Run.

  2. GUIDE отображает отображение диалогового окна: “Активация сохранит изменения в вашем файле фигуры и коде MATLAB. Вы хотите продолжить?

    Нажать кнопку Да.

  3. GUIDE открывает диалоговое окно Save As в вашей текущей папке и предлагает вам ИМЯ ФАЙЛА FIG.

  4. Просмотрите к любой папке, для которой вы имеете привилегии записи, и затем вводите имя файла simple_gui для файла FIG. GUIDE сохраняет и файл FIG и файл кода с помощью этого имени.

  5. Если папка, в которой вы сохранили файлы, не находится на пути MATLAB, GUIDE открывает диалоговое окно, которое позволяет вам изменять текущую папку.

  6. GUIDE сохранил файлы simple_gui.fig и simple_gui.m, и затем запускает программу. Это также открывает файл кода в вашем редакторе по умолчанию.

    Приложение открывается в новом окне. Заметьте, что окно испытывает недостаток в панели стандартного меню и панели инструментов то отображение окон фигуры MATLAB. Можно добавить собственные меню и кнопки на панели инструментов с GUIDE, но по умолчанию приложение GUIDE не включает ни один из этих компонентов.

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

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

 simple_gui
Можно также использовать команду run с файлом кода, например,
run simple_gui

Примечание

Не пытайтесь запустить свое приложение путем открытия его файла FIG за пределами GUIDE. Если вы делаете так, фигура открывается и кажется готовой использовать, но пользовательский интерфейс не инициализирует, и обратные вызовы не функционируют.

Кодирование поведения приложения

Когда вы сохранили свое размещение в предыдущем разделе, Сохраните Размещение, GUIDE создал два файла: файл FIG, simple_gui.fig и программный файл, simple_gui.m m. Однако приложение не является быстро реагирующим, потому что simple_gui.m не содержит операторов, которые выполняют действия. Этот раздел показывает вам, как добавить код к файлу, чтобы сделать приложение функциональным.

Генерация данных, чтобы построить график

Этот раздел показывает вам, как сгенерировать данные, которые будут построены график, когда пользователь нажимает кнопку. Вводная функция генерирует это данные путем вызова функций MATLAB. Вводная функция инициализирует пользовательский интерфейс, когда это открывается, и это - первый обратный вызов в каждом файле сгенерированного кода GUIDE.

В этом примере вы добавляете код, который создает три набора данных к вводной функции. Код использует функции MATLAB peaks, membrane и sinc.

  1. Отобразите вводную функцию в редакторе MATLAB.

    Если файл simple_gui.m не уже открыт в редакторе, открыт из Редактора макетов путем выбора View> Editor.

  2. На вкладке EDITOR, в разделе NAVIGATE, нажимают Go To, и затем выбирают simple_gui_OpeningFcn.

    Курсор перемещается во вводную функцию, которая содержит этот код:

    % --- Executes just before simple_gis made visible.
    function simple_gui_OpeningFcn(hObject, eventdata, handles, varargin)
    % This function has no output args, see OutputFcn.
    % hObject    handle to figure
    % eventdata  reserved - to be defined in a future version of MATLAB
    % handles    structure with handles and user data (see GUIDATA)
    % varargin   command line arguments to simple_g(see VARARGIN)
    
    % Choose default command line output for simple_gui
    handles.output = hObject;
     
    % Update handles structure
    guidata(hObject, handles);
     
    % UIWAIT makes simple_gwait for user response (see UIRESUME)
    % uiwait(handles.figure1);
  3. Создайте данные, чтобы построить график путем добавления следующего кода к вводной функции сразу после комментария, который начинает  % varargin...

    % Create the data to plot.
    handles.peaks=peaks(35);
    handles.membrane=membrane;
    [x,y] = meshgrid(-8:.5:8);
    r = sqrt(x.^2+y.^2) + eps;
    sinc = sin(r)./r;
    handles.sinc = sinc;
    % Set the current data value.
    handles.current_data = handles.peaks;
    surf(handles.current_data)

    Первые шесть исполняемых строк создают данные с помощью функций MATLAB peaks, membrane и sinc. Они хранят данные в структуре handles, аргумент, предоставленный всем обратным вызовам. Обратные вызовы для кнопок могут получить данные из структуры handles.

    Последние две строки создают текущее значение данных и устанавливают его на peaks, и затем отображают график surf для peaks. Следующие данные показывают, как приложение выглядит, когда оно сначала отображается.

Поведение всплывающего меню кода

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

  1. Отобразите обратный вызов всплывающего меню в редакторе MATLAB. В Редакторе Компоновки GUIDE щелкните правой кнопкой по компоненту всплывающего меню, и затем выберите View Callbacks> Callback.

    GUIDE отображает файл кода в Редакторе и перемещает курсор в обратный вызов поп-меню, который содержит этот код:

    % --- Executes on selection change in popupmenu1.
    function popupmenu1_Callback(hObject, eventdata, handles)
    % hObject    handle to popupmenu1 (see GCBO)
    % eventdata  reserved - to be defined in a future version of MATLAB
    % handles    structure with handles and user data (see GUIDATA)
  2. Добавьте следующий код к popupmenu1_Callback после комментария, который начинает % handles...

    Этот код сначала получает два свойства всплывающего меню:

    • Строка массив ячеек, который содержит содержимое меню

    • Значение индекс в содержимое меню выбранного набора данных

    Код затем использует оператор switch, чтобы сделать выбранный набор данных текущими данными. Последний оператор сохраняет изменения в структуре handles.

    % Determine the selected data set.
    str = get(hObject, 'String');
    val = get(hObject,'Value');
    % Set current data to the selected data set.
    switch str{val};
    case 'peaks' % User selects peaks.
       handles.current_data = handles.peaks;
    case 'membrane' % User selects membrane.
       handles.current_data = handles.membrane;
    case 'sinc' % User selects sinc.
       handles.current_data = handles.sinc;
    end
    % Save the handles structure.
    guidata(hObject,handles)

Поведение кнопки кода

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

  1. Отобразите обратный вызов кнопки Surf в редакторе MATLAB. В Редакторе макетов щелкните правой кнопкой по кнопке Surf, и затем выберите View Callbacks> Callback.

    В Редакторе курсор перемещается в обратный вызов кнопки Surf в файле кода, который содержит этот код:

    % --- Executes on button press in pushbutton1.
    function pushbutton1_Callback(hObject, eventdata, handles)
    % hObject    handle to pushbutton1 (see GCBO)
    % eventdata  reserved - to be defined in a future version of MATLAB
    % handles    structure with handles and user data (see GUIDATA)
  2. Добавьте следующий код к обратному вызову сразу после комментария, который начинает % handles...

    % Display surf plot of the currently selected data.
    surf(handles.current_data);
  3. Повторите шаги 1 и 2, чтобы добавить подобный код к обратным вызовам кнопки Mesh и Contour.

    • Добавьте этот код к обратному вызову кнопки Mesh, pushbutton2_Callback:

        % Display mesh plot of the currently selected data.
        mesh(handles.current_data);
    • Добавьте этот код к обратному вызову кнопки Contour, pushbutton3_Callback:

        % Display contour plot of the currently selected data.
        contour(handles.current_data);
  4. Сохраните свой код путем выбора File> Save.

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

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

  1. Запустите свою программу из Редактора макетов путем выбора Tools> Run.

  2. Во всплывающем меню выберите Membrane, и затем нажмите кнопку Mesh. Отображения приложения сетчатый график MathWorks® L-образный Мембранный логотип.

  3. Попробуйте другие комбинации прежде, чем закрыть окно.

Похожие темы

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