Вы находитесь на странице: 1из 22

Поволжский Государственный Университет

Телекоммуникаций и Информатики

Факультет ИСТ

Кафедра ИВТ

Конспект лекций

"ЧМВ. Программирование в системе MATLAB"

Автор-составитель: Акчурин Э.А. д.т.н., профессор

Рецензент: Тарасов В.Н. д.т.н., профессор

Самара

2012
Факультет информационных систем и технологий
Кафедра «Информатика и вычислительная техника»

Автор - д.т.н., профессор Акчурин Э.А.

Другие материалы по дисциплине Вы найдете на сайте


www.ivt.psati.ru

2
1. MATLAB, графический интерфейс пользователя .............................................. 4
1.1. Создание GUI инструментом GUIDE ........................................................... 6
1.2. Редактор GUI (Layout Editor) ........................................................................ 9
1.2.1. Пункт File (Файл) .................................................................................. 12
1.2.2. Пункт Edit (Правка) .............................................................................. 14
1.2.3. Пункт View (Вид) .................................................................................. 15
1.2.4. Пункт Layout (Рабочая область) ......................................................... 16
1.2.5. Пункт Tools (Инструменты) ................................................................. 16
1.2.6. Пункт Help (Справка) ........................................................................... 17
1.3. Пример простого GUI .................................................................................. 18

3
1. MATLAB, графический интерфейс пользователя
Средства графического пользовательского интерфейса (GUI – Graphic User
Interface) предназначены для создания в MATLAB приложений с
пользовательским интерфейсом. В этих приложениях присутствуют
управляющие элементы, при изменениях пользователем свойств которых
вызываются подпрограммы, выполняющие некоторые действия.
Для упрощения разработки GUI MATLAB включает инструмент GUIDE (Graphic
User Interface development environment – среда разработки GUI). Для выбора
инструмента используется команда File=>New=>GUI. Окно инструмента
содержит поле, в котором размещаются компоненты. Доступные компоненты
представлены в палитре, расположенной в правом поле.

При работе с GUIDE:


 Компоненты GUI выбираются из палитры компонент инструмента GUIDE
мышью и переносятся в рабочую область GUI.
 GUIDE сохраняет GUI в двух файлах (рисунок, М-файл).

4
 М-файл, управляющий работой 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 Группа кнопок. Подобна панели, но используется только для
радиокнопок и переключаемых кнопок.
5
ActiveX Это элементы управления, разработанные Microsoft для
Control операционной системы Windows. Их можно использовать при
работе в этой операционной системе. При переносе этого
компонента в рабочую область вызывается список ActiveX
элементов для выбора.

1.1. Создание GUI инструментом GUIDE


Для создания 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. Модальное окно диалога с обязательным ответом
на вопрос.

6
7
Вкладка открытия существующего GUI включает список имеющихся объектов
GUI, если они есть. Кнопка Browse (Просмотреть) открывает стандартный
диалог открытия файла.

8
После выбора типа GUI нажатие на кнопку OK приводит к появлению окна
редактора GUI – Layout Editor.

1.2. Редактор GUI (Layout Editor)


Окно редактора GUI содержит:
 Меню.
 Панель инструментов.
 Набор доступных компонент слева.
 Рабочее поле (Layout Area) с координатной сеткой.

9
При сохранении проекта GUI сохраняются файл рисунка и
m-файл. После каждого редактирования оба файла
изменяются. Ниже листинг m-файла с пустой формой. В
нем автоматически создаются строки исполняемого
кода и комментариии
function varargout = MyGUI(varargin)
% MYGUI M-file for MyGUI.fig
% MYGUI, by itself, creates a new MYGUI or raises the existing
% singleton*.
%
% H = MYGUI returns the handle to a new MYGUI or the handle to
% the existing singleton*.
%
% MYGUI('CALLBACK',hObject,eventData,handles,...) calls the local
% function named CALLBACK in MYGUI.M with the given input arguments.
%
% MYGUI('Property','Value',...) creates a new MYGUI or raises the
% existing singleton*. Starting from the left, property value pairs are
10
% applied to the GUI before MyGUI_OpeningFunction gets called. An
% unrecognized property name or invalid value makes property application
% stop. All inputs are passed to MyGUI_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 MyGUI

% Last Modified by GUIDE v2.5 30-May-2009 12:07:17

% Begin initialization code - DO NOT EDIT


gui_Singleton = 1;
gui_State = struct('gui_Name', mfilename, ...
'gui_Singleton', gui_Singleton, ...
'gui_OpeningFcn', @MyGUI_OpeningFcn, ...
'gui_OutputFcn', @MyGUI_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 MyGUI is made visible.


function MyGUI_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 MyGUI (see VARARGIN)

% Choose default command line output for MyGUI

11
handles.output = hObject;

% Update handles structure


guidata(hObject, handles);

% UIWAIT makes MyGUI wait for user response (see UIRESUME)


% uiwait(handles.figure1);

% --- Outputs from this function are returned to the command line.
function varargout = MyGUI_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;
Для занесения компонента в рабочее поле достаточно выделить его мышью в
палитре компонент и перенести в нужное место рабочей области.

1.2.1. Пункт File (Файл)


Содержит команды работы с файлами применительно к GUI.
Многие команды подобны стандартным командам работы с файлами
операционной системы Windows.

 Файл
12
 Новый
 Открыть...
 Закрыть
 Сохранить
 Сохранить как...
 Экспорт
 Предпочтения
 Печать
 Список последних файлов
Команда File=>Preferences вызывает окно предпочтений MATLAB, в котором
будут отображены параметры GUI по умолчанию. В нем нужно установить
флаг отображения имен компонент в палитре (Show names in component
palette). После этого окно редактора примет иной вид. При этом, конечно,
размеры рабочего поля сокращаются.

13
1.2.2. Пункт Edit (Правка)

 Правка
 Отменить
 Повторить отмененное
 Вырезать
 Копировать
 Вставить
 Удалить

14
 Специальная вставка
 Дублировать

1.2.3. Пункт View (Вид)

 Вид
 Инспектор объектов (в автономном окне)
 Браузер объектов (в автономном окне)
 Редактор М-файла (в автономном окне)
 Показать вызовы ►
Функция создания
Функция удаления
Функция нажатия кнопки
Функция нажатия кнопки окна
Функция перемещения кнопки окна
Функция отпускания кнопки окна
Функция нажатия клавиши
Функция изменения размера
Функция закрыть по запросу
 Callbacks (Вызовы) – это функции, вызываемые для компонента. Команда
View Callbacks (Показать вызовы) отображает для выделенного
компонента список используемых для него функций. При выборе функции
из этого списка в окне редактора М-файла показывается код этой команды.

15
1.2.4. Пункт Layout (Рабочая область)

 Рабочее поле
 Привязать к сетке
 Перенести выделенный объект в верхний слой
 Перенести выделенный объект в нижний слой
 Перенести выделенный объект в слой на 1 выше
 Перенести выделенный объект в слой на 1 ниже
Объекты GUI отображаются слоями. Вы можете перемещать любой объект из
слоя в слой четырьмя способами.

1.2.5. Пункт Tools (Инструменты)

 Инструменты
 Исполнить
 Выровнять объекты... (вызов окна выравнивания )
 Сетка и линейки (вызов окна установки)
 Редактор меню

16
 Редактор порядка переключений полей клавишей Tab
 Опции GUI

1.2.6. Пункт Help (Справка)

Справка

17
Использование редактора
Создание GUI

1.3. Пример простого GUI


В примере с помощью GUI сравниваются поверхностные графики разного
типа.
Начать нужно с дизайна окна, чтобы определить его содержание. В примере в
окне GUI содержатся:
 Объект 3D Axes слева, в котором график рисуется.
 Панель с группой кнопок справа вверху для выбора типа графика.
 Список справа внизу для выбора данных для рисования.
 Над списком размещен статический текст Selected Data (Выберите
данные).
Сконструированное окно GUI имеет вид:

18
Для изменения свойств компонент можно использовать разные способы:
 Прямо в окне GUI, перемещая компонент или меняя его размеры
манипулятором мышь можно изменить размеры и позицию.
 Использовать браузер объектов Object Browser, в котором выбирается
нужный объект. При этом вызывается инспектор объектов.
 Property Inspector. Инспектор объектов, в котором отображаются свойства
компонентов. Если выбирается конкретный компонент, то в инспекторе он
выделяется цветом.
 Прямое редактирование кода в файле GUI.

19
20
Компоненты GUI имеют множество свойств, задаваемых по умолчанию.
Большинство менять не следует. В нашем примере для кнопок выбора типа
графика выбраны названия типов (Surf, Mesh, Contour), для типов данных
набор функций (peacks, membrane, sink) для статического текста строка
Selected Data.
После создания GUI он должен быть сохранен. Теперь его можно исполнить
командой Tools=>Run (или кнопкой со стрелкой из панели инструментов). При
работе с созданным GUI нужно:
 Выбрать данные.
 После этого для этих данных выбрать тип графика.
Примеры работы с разными данными с типом графика serf ниже. Каждый раз в
окне GUI кнопка типа выделяется цветом:

21
Примеры работы с данными peaks с разными типами графика. Каждый раз в
окне GUI кнопка типа выделяется цветом:

22

Вам также может понравиться