- •Лабораторная работа №3. Разработка графического пользовательского интерфейса gui в среде Matlab.
- •Требования к содержанию, оформлению и порядку выполнения
- •Общая постановка задачи
- •Теоретическая часть
- •Основные принципы построения графического интерфейса
- •Создание gui
- •Редактор gui (Layout Editor)
- •Пример создания gui
- •Список индивидуальных данных
Основные принципы построения графического интерфейса
Средства графического пользовательского интерфейса (GUI – Graphic User Interface) предназначены для создания в MATLAB приложений с пользовательским интерфейсом. В этих приложениях присутствуют управляющие элементы, при изменениях пользователем свойств которых вызываются подпрограммы, выполняющие некоторые действия. Использование графического интерфейса позволяет пользователю сделать программу более универсальной.
Как и любой процесс проектирования, процесс построения графического интерфейса пользователя можно разбить на следующие этапы:
1. Постановка задачи,
2. Создание формы интерфейса и создание на неё элементов управления.
3. Написание кода программы и кода обработки событий.
Этапы построения графического интерфейса пользователя:
1. На первом этапе проводиться анализ поставленной задачи и определяется количество и состав элементов управления необходимых для решения задачи.
2. На втором этапе создаётся форма графического интерфейса и на ней создаются и размещаются элементы управления. Здесь же описываются их свойства.
Для упрощения разработки GUI MATLAB включает инструмент GUIDE (Graphic User Interface development environment – среда разработки GUI).
Создание gui
Для создания GUI используются два метода:
- Команда guide в командном окне.
- Выбор в меню MATLAB команды File=>New=>GUI.
В обоих случаях генерируется диалоговое окно создания GUI, которое содержит две вкладки:
- Creating New GUI – создание нового GUI.
- Open Existing GUI – открыть существующий GUI.
На вкладке создания нового GUI есть две панели: слева список шаблонов для выбора, справа предварительный просмотр. Можно выбрать один из предлагаемых шаблонов:
- Blank GUI (Default). Пустой GUI (по умолчанию)
- GUI with Uicontrols. GUI с элементами управления пользовательским интерфейсом.
- GUI with Axes and Menu. GUI с объектом Axes (координатные оси) и меню
- Modal Question Dialog. Модальное окно диалога с обязательным ответом на вопрос.
Рисунок 1 – Создание нового бланка графического интерфейса
Окно инструмента содержит поле, в котором размещаются компоненты. Доступные компоненты представлены в палитре, расположенной в правом поле.
Редактор gui (Layout Editor)
Окно редактора GUI содержит:
- Меню.
- Панель инструментов.
- Набор доступных компонент слева.
- Рабочее поле (Layout Area) с координатной сеткой.
Рисунок 2 – Пустой бланк
При работе с GUI:
- Компоненты GUI выбираются из палитры компонент инструмента GUI мышью и переносятся в рабочую область GUI.
- GUI сохраняется в двух файлах (fig, m-файл).
- М-файл, управляющий работой GUI, генерируется автоматически при сохранении проекта.
Для создания GUI в MATLAB используются следующие компоненты:
Компонент |
Назначение |
Push Button |
Кнопка. При нажатии отображается нажатой, при отпускании генерирует действие и отображается отжатой. |
Toggle Button |
Переключаемая кнопка. При нажатии отображается нажатой, при отпускании генерирует действие, но остается нажатой. Применяется для панелей инструментов. |
Check Box |
Независимый переключатель. Генерирует действие, когда нажат, и отображает включенное состояние птичкой в прямоугольнике. Используется в группах независимых переключателей для установки свойств объектов. |
Radio Button |
Зависимый переключатель. Генерирует действие, когда нажат, и отображает включенное состояние точкой в кружке. Похож на Check Box, но при использовании в группе при включении выключает остальные. |
Edit Text |
Редактор текста. Используется для ввода и редактирования строк текста. Действие генерируется при нажатии клавиши Enter для однострочного текста и Ctl+Enter для многострочного текста. |
Static Text |
Статический текст. Используется для меток и для отображения значения Slider. |
Slider |
Ползунок. Отображает численные значения в выбранном диапазоне с выбор значения перемещением ползунка. Выбранное значение отображается в компоненте Static Text. |
ListBox |
Список тем для выбора. Позволяет выбрать одну или несколько тем. |
Pop-Up Menu |
Выпадающее меню (иначе ComboBox). Подобен ListBox, но список открывается только при выборе. Используется для экономии места. |
Axes |
Координатные оси. Используются для рисования в GUI графиков. |
Panel |
Панель. Это контейнер для группы компонент GUI. Панель используется для облегчения понимания назначения элементов управления путем их визуального объединения. Панель может иметь границы и заголовок. При перемещении панели ее дочерние компоненты тоже перемещаются. |
Button Group |
Группа кнопок. Подобна панели, но используется только для радиокнопок и переключаемых кнопок. |
ActiveX Control |
Это элементы управления, разработанные Microsoft для операционной системы Windows. Их можно использовать при работе в этой операционной системе. При переносе этого компонента в рабочую область вызывается список ActiveX элементов для выбора. |
При сохранении проекта GUI сохраняются файл формы и m-файл. После каждого редактирования оба файла изменяются. Ниже листинг m-файла с пустой формой. В нем автоматически создаются строки исполняемого кода и комментарии.
function varargout = Lab_3(varargin)
% LAB_3 MATLAB code for Lab_3.fig
% LAB_3, by itself, creates a new LAB_3 or raises the existing
% singleton*.
%
% H = LAB_3 returns the handle to a new LAB_3 or the handle to
% the existing singleton*.
%
% LAB_3('CALLBACK',hObject,eventData,handles,...) calls the local
% function named CALLBACK in LAB_3.M with the given input arguments.
%
% LAB_3('Property','Value',...) creates a new LAB_3 or raises the
% existing singleton*. Starting from the left, property value pairs are
% applied to the GUI before Lab_3_OpeningFcn gets called. An
% unrecognized property name or invalid value makes property application
% stop. All inputs are passed to Lab_3_OpeningFcn via varargin.
%
% *See GUI Options on GUIDE's Tools menu. Choose "GUI allows only one
% instance to run (singleton)".
%
% See also: GUIDE, GUIDATA, GUIHANDLES
% Edit the above text to modify the response to help Lab_3
% Last Modified by GUIDE v2.5 03-Oct-2015 13:08:58
% Begin initialization code - DO NOT EDIT
gui_Singleton = 1;
gui_State = struct('gui_Name', mfilename, ...
'gui_Singleton', gui_Singleton, ...
'gui_OpeningFcn', @Lab_3_OpeningFcn, ...
'gui_OutputFcn', @Lab_3_OutputFcn, ...
'gui_LayoutFcn', [] , ...
'gui_Callback', []);
if nargin && ischar(varargin{1})
gui_State.gui_Callback = str2func(varargin{1});
end
if nargout
[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
else
gui_mainfcn(gui_State, varargin{:});
end
% End initialization code - DO NOT EDIT
% --- Executes just before Lab_3 is made visible.
function Lab_3_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 Lab_3 (see VARARGIN)
% Choose default command line output for Lab_3
handles.output = hObject;
% Update handles structure
guidata(hObject, handles);
% UIWAIT makes Lab_3 wait for user response (see UIRESUME)
% uiwait(handles.figure1);
% --- Outputs from this function are returned to the command line.
function varargout = Lab_3_OutputFcn(hObject, eventdata, handles)
% varargout cell array for returning output args (see VARARGOUT);
% hObject handle to figure
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% Get default command line output from handles structure
varargout{1} = handles.output;
Для занесения компонента в рабочее поле достаточно выделить его мышью в палитре компонент и перенести в нужное место рабочей области.
