49943 (597467)

Файл №597467 49943 (Создание графического интерфейса пользователя)49943 (597467)2016-07-30СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла

Кафедра: ИТ

СОЗДАНИЕ ГРАФИЧЕСКОГО ИНТЕРФЕЙСА ПОЛЬЗОВАТЕЛЯ В MATLAB

Екатеринбург

2006

Принципы создания приложений с GUI

Приложения MATLAB являются графическими окнами, содержащими элементы управления (кнопки, списки, переключатели, флаги, полосы скроллинга, области ввода, меню), а также оси и текстовые области для вывода результатов работы. Создание приложений включает следующие основные этапы - расположение нужных элементов интерфейса в пределах графического окна и определение действий (команд MATLAB), которые выполняются при обращении пользователя к данным объектам, например при нажатии кнопки. Процесс работы над приложением допускает постепенное добавление элементов в графическое окно, запуск и тестирование приложения и возврат в режим редактирования. Конечным результатом является программа с графическим интерфейсом пользователя (GUI), содержащаяся в нескольких файлах, запуск которой производится указанием ее имени в командной строке MATLAB или в другом приложении.

Рассмотрим основные принципы создания приложений в MATLAB 6.x.



Среда GUIDE



Перейдите в среду GUIDE, выполнив guide в командной строке. В появившемся окне выберите Blank GUI и нажмите OK. Появится редактор окна приложения (рис. 1.), заголовок которого untitled.fig означает, что в нем открыт новый файл.

Рис. 1 Редактор приложения

Редактор приложения содержит:

  • строку меню;

  • панель инструментов управления приложением;

  • заготовку окна приложения с нанесенной сеткой;

  • вертикальную и горизонтальную линейки;

  • панель инструментов для добавления элементов интерфейса на окно приложения.

Редактор приложения MATLAB 6.x позволяет разместить различные элементы интерфейса (рис. 2). Требуется нажать соответствующую кнопку на панели инструментов и поместить выбранный объект щелчком мыши в требуемое место заготовки окна приложения. Другой способ состоит в задании прямоугольной области объекта перемещением мыши по области заготовки окна с удержанием левой кнопки. Размер и положение добавленных объектов изменяются при помощи мыши. Перед изменением размера следует выбрать режим выделения объектов и сделать объект текущим, щелкнув по нему клавишей мыши.

Рис. 2. Панель инструментов для добавления элементов интерфейса

Приложение в данный момент находится в режиме редактирования. Любой объект можно удалить из окна при помощи , предварительно его выделив. Запуск приложения производится при помощи кнопки Run либо выбором соответствующего пункта меню Tools. Появляется диалоговое окно GUIDE, которое сообщает о необходимости сохранить приложение. Нажмите Yes и сохраните приложение в файле с расширением fig.

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

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



Программирование событий

Приложение в MATLAB 6.x хранится в двух файлах с расширениями fig и m, первый из них содержит информацию о размещенных в окне приложения объектах, а второй является М-файлом с основной функцией и подфункциями. Добавление элемента интерфейса из редактора приложения приводит к автоматическому созданию соответствующей подфункции. Данную подфункцию следует наполнить содержимым - операторами, которые выполняют обработку события, возникающего при обращении пользователя к элементу интерфейса.

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

Перейдите в среду создания приложения командой guide.

Расположите на форме кнопку и оси так, как показано на рис. 3. На кнопке автоматически размещается надпись PushButton. Кнопка является элементом интерфейса, ей следует дать имя, которое уникальным образом идентифицировало бы ее среди всех объектов окна приложения.

Рис. 3. Расположение кнопки и осей в окне приложения

Выделите кнопку PushButton и вызовите редактор свойств Property Inspector при помощи панели инструментов управления приложением. Появляется окно редактора свойств, в котором содержится таблица названий свойств кнопки и их значений. Занесите в свойство Tag значение btnPlot, щелкните мышью по строке справа от названия свойства, наберите требуемое значение и нажмите . btnPlot теперь является именем кнопки PushButton. Удобно задавать имена, часть которых определяет тип элемента управления (btn соответствует button - кнопке). Аналогичным образом дайте осям имя axMain. Выберите в меню File редактора приложения пункт Save as, создайте папку MyFirstGui и сохраните приложение в файле mygui.fig. При этом открывается редактор М-файлов, содержащий файл mygui.m. Данный файл имеет структуру, схематично представленную в листинге 1.

Листинг 1. Структура М-файла приложения с графическим интерфейсом

function varargout = mygui (varargin)

% Операторы инициализации приложения

% ABOUT CALLBACKS :

% Краткая информация о программировании событий

function btnPlot_Callback(hObject, eventdata, handles)

% Подфункция обработки события Callback кнопки с именем btnPlot

Приложение mygui содержит одну кнопку PushButton. Когда пользователь нажимает на Push Button в работающем приложении, то происходит событие Callback данного элемента управления. Вызывается подфункция btnPlot_Callback. Сейчас она не содержит операторов. Имя подфункции образовано названием кнопки и события. Очень важно задавать имена объектам в свойстве Tag сразу после их добавления на окно приложения в редакторе приложений, иначе генерируемая подфункция получит имя, которое сохранится при последующем изменении значения Tag и повлечет ошибки при выполнении приложения. Завершающий этап состоит в программировании действий, которые выполняются при нажатии пользователем на кнопку PushButton. Измените функцию обработки события нажатия на PushButton в соответствии с листингом 2.

Листинг 2. Обработка события Callback кнопки с именем btnPlot

function btnPlot_Callback(hObject, eventdata, handles)

x=[-2:0.2:2];

y=exp(-x.^2);

plot (x,y)

Сохраните файл mygui.m в редакторе М-файлов и запустите приложение из редактора приложений, нажав кнопку Run. Нажатие на PushButton в запущенном приложении приводит к отображению графика функции на осях. Закройте окно приложения при помощи кнопки с крестиком в правом верхнем углу и продолжите работу над mygui в редакторе приложений.

Добавьте кнопку так, как показано на рис. 4, задайте ей имя btnСlear в редакторе свойств. Быстрый доступ к свойствам выделенного объекта в редакторе приложений производится из пункта Inspect Properties всплывающего меню при нажатии правой кнопки мыши на объекте. Перейдите к подфункции обработки события Callback добавленной кнопки, для чего следует выбрать пункт View Callbacks->Callback всплывающего меню. Выбор данного пункта делает активным редактор М-файлов. Разместите единственный оператор очистки осей cla в подфункции (листинг 3).

Листинг 3. Обработка события кнопки с именем btnClear

function btnClear_Callback(hObject, eventdata, handles)

cla

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

Рис.4. Окно приложения с двумя кнопками

Конструирование интерфейса



Управление свойствами объектов

Разработка приложения сопряжена с изменением свойств объектов, которые они получают по умолчанию при размещении их на заготовке окна. Некоторые из свойств, например надпись на кнопке или ее размер, устанавливаются при создании объекта в режиме редактирования. Другие свойства могут изменяться программно в работающем приложении.



Установка свойств при редактировании

Продолжите работу над приложением mygui, окно которого было изображено на рис. 4. Очевидно, что следует подписать кнопки, например Построить и Очистить. Кнопки являются графическими объектами с определенными свойствами, среди которых имеется свойство, отвечающее за надпись на кнопке. Сделайте левую кнопку приложения mygui текущей и вызовите редактор свойств Property Inspector. Установите свойство String левой кнопки в значение Построить (см рис.5.)

Рис.5 Окно свойств Property Inspector

Значение свойства string соответствует надписи на кнопке, a Tag - имени или тегу кнопки, как объекта. Имена объектов используются для изменения их свойств в ходе работы приложения при выполнении блоков обработки событий от других элементов интерфейса. Перейдите теперь к свойствам правой кнопки и установите String в Очистить.

Доступ к редактору свойств выделенного объекта производится либо из панели инструментов управления приложением, либо из меню View редактора приложений, либо при помощи пункта Property Inspector всплывающего меню.

Значение свойства string сразу отображается на кнопке приложения, находящегося в режиме редактирования. Запустите приложение.



Программное изменение свойств

Большинство свойств объектов можно устанавливать программно прямо в ходе работы приложения. Усовершенствуйте приложение mygui следующим образом. Пусть при запуске доступной является только кнопка Построить, при нажатии на кнопку Построить выводится график и она становится недоступной, зато пользователь может нажать кнопку Очистить для очистки осей, и наоборот.

Решение поставленной задачи требует привлечения свойства Enable. Свойство Enable объекта отвечает за возможность доступа к нему пользователем, значение on разрешает доступ, a off, соответственно, запрещает. Установка значений свойствам объектов в программе производится при помощи функции set.

Функция set вызывается с тремя входными аргументами - указателем на объект, названием свойства и его значением, последние два аргумента заключаются в апострофы. Свойства одного объекта должны изменяться в блоке операторов обработки события Сallback другого объекта. Следовательно, должна иметься возможность доступа к указателю на любой существующий объект. Аргументы hObject и handles подфункций, которые обрабатывают события элементов управления, содержат требуемые указатели. В hObject хранится указатель на тот объект, событие которого обрабатывается в данный момент, a handles является структурой указателей. Поля структуры совпадают со значениями свойств Tag существующих элементов интерфейса. Например, handles.btnPlot является указателем на кнопку Построить с именем btnPlot. Доступ к Очистить должен быть запрещен в начале работы приложения, пока пользователь не нажмет Построить Установите в редакторе свойств для кнопки Очистить свойство Enable в off, используйте кнопку со стрелкой в строке со значением свойства. Остальные изменения значения Enable кнопок должны происходить в ходе работы приложения. Для разрешения и запрещения доступа к кнопкам нужно внести дополнения в обработку их событий Callback.

В подфункцию обработки события Callback кнопки Построить добавьте при помощи редактора вызовов:

  • установку свойства Enable кнопки Очистить в значение on (после вывода графика следует разрешить доступ к Очистить);

  • установку свойства Enable кнопки Построить в значение off (после вывода графика следует запретить доступ к Построить);

Аналогичные изменения произведите в обработке события Callback кнопки Очистить, а именно:

  • установку свойства Enable кнопки Построить в значение on (после очистки осей следует разрешить доступ к Построить);

  • установку свойства Enable кнопки Очистить в значение off (после очистки осей следует запретить доступ к кнопке);

Подфункции btnPlot_Callback и btnClear_Callback должны быть запрограммированы так, как показано на листинге 4.

Характеристики

Тип файла
Документ
Размер
31,97 Mb
Тип материала
Учебное заведение
Неизвестно

Тип файла документ

Документы такого типа открываются такими программами, как Microsoft Office Word на компьютерах Windows, Apple Pages на компьютерах Mac, Open Office - бесплатная альтернатива на различных платформах, в том числе Linux. Наиболее простым и современным решением будут Google документы, так как открываются онлайн без скачивания прямо в браузере на любой платформе. Существуют российские качественные аналоги, например от Яндекса.

Будьте внимательны на мобильных устройствах, так как там используются упрощённый функционал даже в официальном приложении от Microsoft, поэтому для просмотра скачивайте PDF-версию. А если нужно редактировать файл, то используйте оригинальный файл.

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

Список файлов книги

Свежие статьи
Популярно сейчас
А знаете ли Вы, что из года в год задания практически не меняются? Математика, преподаваемая в учебных заведениях, никак не менялась минимум 30 лет. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6353
Авторов
на СтудИзбе
311
Средний доход
с одного платного файла
Обучение Подробнее