Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
gui.doc
Скачиваний:
19
Добавлен:
22.11.2018
Размер:
261.63 Кб
Скачать

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

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

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

      1. Проектирование формы

Продолжите работу над приложением, следует изменить надписи на кнопках, например, на «Построить» и «Очистить». Кнопки имеют свойство(String), значение которого является надписью на кнопке. Измените, надписи кнопок, как было указано ранее. Запустите приложение.

3.2.3. Изменение свойств из программного кода

Свойства объектов можно устанавливать программно в ходе работы приложения. Усовершенствуйте приложение следующим образом:

- При запуске доступна только кнопка «Построить».

- При нажатии на кнопку «Построить» выводится график, и она становится недоступной. В свою очередь должна разблокироваться кнопка «Очистить» для очистки графика.

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

Функция set вызывается с тремя параметрами– ссылкой на объект свойство которого нужно поменять, названием свойства и его значением, последние два аргумента заключаются в апострофы. Аргументы hObject и handles функций-обработчиков содержат указатели. В hObject хранится указатель на тот объект, событие которого обрабатывается в данный момент, a handles является вектором указателей на все объекты на форме. Например, handles.btriPlot является указателем на кнопку btnPIot с надписью «Построить». Установите в редакторе свойств для кнопки «Очистить» свойство Enable равным off.

Листинг 5. Внесите изменения в mygui.m:

function btnPlot_Callback(hObject, eventdata, handles)

set(hObject, 'Enable', 'off');

set(handles.clear, 'Enable', 'on');

x = [-2.5 : 0.6 : 2 ];

y = exp(-x .^2);

drawPlot(x, y, handles);

PlotDialog(hObject, handles);

function clear_Callback(hObject, eventdata, handles)

set(hObject, 'Enable', 'off');

set(handles.btnPlot, 'Enable', 'on');

plotClearDialog(hObject, handles);

Не забывайте перед очередным запуском приложения сохранять как m-файл, так и fig-файл.

3.3. Работа над приложением

3.3.1. Запуск приложения

Запуск приложения осуществляется не только из редактора приложений. Для запуска приложения достаточно в качестве команды задать его имя в командной строке

Каталог с приложением должен содержаться в путях поиска MATLAB или являться текущим.

3.3.2. Оформление интерфейса

Часто требуется, чтобы небольшое перемещение мыши вызывало изменение положения объекта на некоторый фиксированный шаг. Сетка редактора приложений позволяет осуществить такое дискретное движение. Выбор пункта Grid and Rulers меню Tools приводит к появлению диалогового окна.

Флаги Show rulers и Show grid соответствуют отображению линеек и сетки в редакторе приложений, а раскрывающийся список Grid Size позволяет выбрать размер ячеек сетки. Минимально допустимый размер - десять пикселей позволяет достаточно точно располагать элементы управления в окне приложений. Привязка перемещения к линиям сетки происходит при установленном флаге Snap to grid. Привязка позволяет разместить элемент и изменить его размеры только при условии прохождения границы объекта по линиям сетки. Плавно изменять положение выделенного объекта можно при помощи клавиш со стрелками. Одновременное удержание их с клавишей Ctrl приводит к перемещению с учетом привязки к сетке.