Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Matlab_06.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
4.6 Mб
Скачать
    1. Создание пользовательского интерфейса.

Т еперь следует признаться, что автор пособия до сих пор лукавил, скрывая свои истинные намерения. Дело в том, что все-таки все перечисленное можно сделать, обходясь функциями графики высокого уровня: plot, plot3, surf и т.д. На самом деле все это было подготовкой к тому, чтобы начать разговор об использовании GUI (Graphical User Interface – графического пользовательского интерфейса). Конечно, очень важно уметь получать решения поставленных перед вами задач. Для этого достаточно овладеть приемами программирования. Однако не менее важно уметь представить полученные результаты в удобной и наглядной форме. Причем это важно не только для того, чтобы пустить пыль в глаза начальнику или заказчику. Часто хорошо продуманное графическое оформление помогает лучше осмыслить полученные результаты.

Вот для того, чтобы приступить к знакомству с GUI, и потребовалось предварительно познакомиться с необходимыми понятиями и приемами – хэндлами, взаимосвязью графических объектов, изменением свойств объектов с помощью команд get и set.

Итак, попробуем создать что-то очень простое. Начнем с того, что создадим фигуру и оси в ней:

>> hf=figure;

>> ha=axes;

Теперь нарисуем в осях какую-либо кривую, например, параболу:

>> x=linspace(0,1,101);

>> y=x.^2;

>> hl=line(x,y);

Фигура примет следующий вид:

Теперь попробуем реализовать следующую задумку. Поместим на этой фигуре две кнопки: одну с надписью on, а другую с надписью off. Первая будет включать в график сетку (для этого в MATLAB’е существует команда grid on), а вторая выключать (команда grid off). Для создания кнопки, как и для создания других объектов управления (линейки прокрутки, текстовые окна, списки, рамки и т.д.) используется команда uicontrol. Наберем эту команду в следующем виде:

>> hb1=uicontrol('Style','pushbutton','String','on','Callback','grid on');

Что мы здесь задали? Свойство Style указывает, какого типа объект создается. В данном случае значение pushbutton означает именно командную кнопку. Свойство String – это надпись на объекте. Наконец, свойство Callback – это команда, которая выполнится, если на эту кнопку нажать. Проверим и нажмем кнопку, которая появилась на фигуре. Действительно, сетка появилась.

Т еперь в соответствии с задумкой создаем вторую кнопку:

>> hb2=uicontrol('Style','pushbutton','String','off','Callback','grid off');

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

Поправим дело, ведь мы уже умеем изменять свойства объектов с помощью команды set:

>> set(hb2,'Position',[70 10 60 20])

>>

Т еперь видны обе кнопки, и обе они работают. Мы можем это проверить понажимав на них по очереди.

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

Теперь закроем фигуру и наберем в командной строке >>first – окно вновь на экране и работает все так же.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]