Среда GUIDE будет удалена в будущем релизе. После того, как GUIDE удален, существующие приложения GUIDE продолжат запускаться в MATLAB®, но они не будут доступны для редактирования в GUIDE.
Чтобы продолжить редактировать существующее приложение GUIDE, см. Стратегии Миграции GUIDE информации о том, как помочь обеспечить совместимость приложения с будущими релизами MATLAB. Чтобы создать новые приложения, используйте App Designer вместо этого.
В этом примере показано, как использовать GUIDE, чтобы создать приложение, которое имеет простой пользовательский интерфейс (пользовательский интерфейс), такое как показанное здесь.
Последующие разделы проводят вас по процессу создавания этого приложения.
Если вы только хотите просмотреть и запустить код, который создал это приложение, установите свою текущую папку на одну, к которой у вас есть доступ для записи. Скопируйте пример кода и откройте его в Редакторе путем издания следующих команд MATLAB:
copyfile(fullfile(docroot, 'techdoc','creating_guis',... 'examples','simple_gui*.*')),fileattrib('simple_gui*.*', '+w'); guide simple_gui.fig; edit simple_gui.m
ИНСТРУКЦИЯ путем ввода guide
в посдказке MATLAB.
В диалоговом окне GUIDE Quick Start выберите шаблон Blank GUI (Default), и затем нажмите OK.
Отобразите имена компонентов в палитре элементов:
Выберите File> Preferences> GUIDE.
Выберите Show names in component palette.
Нажмите OK.
Установите размер окна путем изменения размеров области сетки в Редакторе макетов. Кликните по нижнему правому углу и перетащите его, пока холст не будет приблизительно 3 дюйма высотой и 4 дюйма шириной. При необходимости сделайте холст больше.
Добавьте, выровняйте и пометьте компоненты в пользовательском интерфейсе.
Добавьте эти три кнопки в пользовательский интерфейс. Выберите инструмент кнопки из палитры элементов в левой стороне Редактора макетов и перетащите его в область размещения. Создайте три кнопки, расположив их приблизительно как показано в следующем рисунке.
Добавьте остающиеся компоненты в пользовательский интерфейс.
Область статического текста
Всплывающее меню
Оси
Расположите компоненты как показано в следующем рисунке. Измените размер компонента осей приблизительно к дюймам 2 на 2.
Если несколько компонентов имеют тот же родительский элемент, можно использовать Инструмент Выравнивания, чтобы выровнять их друг другу. Выровнять эти три кнопки:
Выберите все три кнопки путем нажатия Ctrl и нажатия на них.
Выберите Tools> Align Objects.
Установите эти настройки в Инструменте Выравнивания:
Выровненный по левому краю в горизонтальном направлении.
Интервал 20 пикселей между кнопками в вертикальном направлении.
Нажмите OK.
Каждая из этих трех кнопок задает тип графика: surf, mesh и контур. Этот раздел показывает вам, как пометить кнопки теми опциями.
Выберите View> Property Inspector.
В области размещения кликните по главной кнопке.
В Property Inspector выберите String
свойство, и затем заменяет существующее значение на слово Surf
.
Нажмите клавишу Enter. Метка кнопки превращается в Surf.
Кликните по каждой из остающихся кнопок в свою очередь и повторных шагов 3 и 4. Пометьте среднюю кнопку Mesh и нижнюю кнопку Contour.
Всплывающее меню обеспечивает выбор трех наборов данных: peaks, мембрана и sinc. Эти наборы данных соответствуют функциям MATLAB того же имени. Этот раздел показывает вам, как перечислить те наборы данных как выбор в поп-меню.
В области размещения кликните по всплывающему меню.
В Property Inspector нажмите кнопку рядом с String
. Отображения диалогового окна String.
Замените существующий текст на имена этих трех наборов данных: peaks, мембрана и sinc. Нажмите Enter, чтобы переместиться в следующую строку.
Когда вы закончите редактировать элементы, нажмите OK.
Первый элемент в вашем списке, peaks
, появляется во всплывающем меню в области размещения.
В этом пользовательском интерфейсе статический текст служит меткой для всплывающего меню. Этот раздел показывает вам, как изменить статический текст, чтобы считать Select Data
.
В области размещения кликните по статическому тексту.
В Property Inspector нажмите кнопку рядом с String
. В диалоговом окне String, которое отображается, замените существующий текст на фразу Select Data
.
Нажмите OK.
Фраза Select Data
появляется в компоненте статического текста выше всплывающего меню.
Когда вы сохраняете размещение, GUIDE создает два файла, файл FIG и файл кода. Файл FIG, с дополнительным .fig
, двоичный файл, который содержит описание размещения. Файл кода, с дополнительным .m
, содержит функции MATLAB, которые управляют поведением приложения.
Сохраните и запустите свою программу путем выбора Tools> Run.
GUIDE отображает отображение диалогового окна: “Активация сохранит изменения в вашем файле фигуры и коде MATLAB. Вы хотите продолжить?
Нажмите Yes.
GUIDE открывает диалоговое окно Save As в вашей текущей папке и предлагает вам ИМЯ ФАЙЛА FIG.
Просмотрите к любой папке, для которой вы имеете привилегии записи, и затем вводите имя файла simple_gui
для файла FIG. GUIDE сохраняет и файл FIG и файл кода с помощью этого имени.
Если папка, в которой вы сохранили файлы, не находится на пути MATLAB, GUIDE открывает диалоговое окно, которое позволяет вам изменять текущую папку.
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
. Однако приложение не является быстро реагирующим потому что simple_gui.m
не содержит операторов, которые выполняют действия. Этот раздел показывает вам, как добавить код в файл, чтобы сделать приложение функциональным.
Этот раздел показывает вам, как сгенерировать данные, которые будут построены, когда пользователь нажимает кнопку. Вводная функция генерирует эти данные путем вызова функций MATLAB. Вводная функция инициализирует пользовательский интерфейс, когда это открывается, и это - первый коллбэк в каждом файле сгенерированного кода GUIDE.
В этом примере вы добавляете код, который создает три набора данных к вводной функции. Код использует функции MATLAB peaks
, membrane
, и sinc
.
Отобразите вводную функцию в редакторе MATLAB.
Если файл simple_gui.m
не уже открыто в редакторе, открыт из Редактора макетов путем выбора View> Editor.
На вкладке 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);
Создайте данные, чтобы построить путем добавления следующего кода во вводную функцию сразу после комментария, который начинает % 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
соответственно.
Отобразите коллбэк всплывающего меню в редакторе 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)
Добавьте следующий код в popupmenu1_Callback
после комментария, который начинает % handles...
Этот код сначала получает два свойства всплывающего меню:
String
— массив ячеек, который содержит содержимое меню
Value
— индекс в содержимое меню выбранного набора данных
Код затем использует 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
структура и затем строит его.
Отобразите коллбэк кнопки 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)
Добавьте следующий код в коллбэк сразу после комментария, который начинает % handles...
% Display surf plot of the currently selected data. surf(handles.current_data);
Повторите шаги 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);
Сохраните свой код путем выбора File> Save.
В Коде Поведение Приложения вы запрограммировали всплывающее меню и кнопки. Вы также создали данные для них, чтобы использовать и инициализировали отображение. Теперь можно запустить программу, чтобы видеть, как она работает.
Запустите свою программу из Редактора макетов путем выбора Tools> Run.
Во всплывающем меню выберите Membrane, и затем нажмите кнопку Mesh. Отображения приложения сетчатый график MathWorks® L-образный Мембранный логотип.
Попробуйте другие комбинации прежде, чем закрыть окно.