Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
шпоргалка / 0531719_A7179_matematicheskoe_modelirovanie_i_avtomatizirovannoe_proektiro.doc
Скачиваний:
133
Добавлен:
20.02.2014
Размер:
671.74 Кб
Скачать

30. Способы создания графического пользовательского интерфейса в Matlab.

В основе подхода к созд. графич. пользоват. интерфейса в MatLab лежат принципы объектно-ориентированного программирования.

Root

Figure

Axes uicontrol … uimenu

image line … text

Корнем дерева явл. класс Root, символизирующий экран дисплея. Графич. окно явл. объектом класса Figure. Объект Axes, представляющий график функции в графич. окне, явл. сложным и многокомпонентным объектом.

Все объекты создаются функциями конструкторами, имеющими имена, совпадающие с названием этих объектов. Конструктор можно вызвать как с параметрами, так и без них.

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

1) активное окно (current figure)

2) активный графич. объект (current object)

3) активный график (current axes).

Для получения значений дескрипторов этих объектов используют три сист. фун.:

1) gcf – get current figure 2) gco ­­­­­­-­­ get current object 3) gca - get current axes.

Полученными значениями можно манипулировать при работе программы.

Есть два способа организации GUI: 1) непосредственный 2) автоматизированный

Непосредственный – GUI программируется функциями непосредственно в М-файле.

Для автоматизированного интерфейса Matlab содержит основные графические эл-ты:

Кнопка вызова – push button (callback – им процедуры ответного вызова, string – надпись на кнопке)

Кнопка выбора отклика – rudio button (те же св-ва)

Окно редактируемого текста – edit text (string – символьная строка)

Скользящая шкала – slider (min/max – числовые границы изменения значений ползунка)

Любому интерфейсному элементу всегда присваивается 41 св-во.

Редактор меню имеет 2 вкладки: главное меню (Main Menu), контекстное меню (Context Menu). Последовательность создания меню

- активизировать команду New Menu

- задать для объекта св-ва Label – наименование пункта, Tag – ярлык пункта меню, callback – m-файл ответного отклика

- для каждого пункта задаются подпункты меню - NewMenuItem

- для каждого подпункта задаются свойства

Для контекстного меню нет названия основного св-ва (Label)

31. Иерархия классов gui. Типы графических элементов интерфейса.

В основе подхода к созд. графич. пользоват. интерфейса в MatLab лежат принципы объектно-ориентированного программирования.

Root

Figure

Axes uicontrol … uimenu

image line … text

Корнем дерева явл. класс Root, символизирующий экран дисплея. Графич. окно явл. объектом класса Figure. Объект Axes, представляющий график функции в графич. окне, явл. сложным и многокомпонентным объектом.

Для автоматизированного интерфейса Matlab содержит основные графические эл-ты:

Кнопка вызова – push button. Св-ва Callback – имя процедуры ответного вызова; String – надпись на кнопке.

Кнопка выбора отклика – rudio button. Св-ва аналогичны.

Окно редактируемого текста – edit text. String – символьная строка.

Скользящая шкала – slider. Min,Max – min/max числовые границы изменений значений ползуна.

Выпадающее меню – popup menu и др.

Так же существуют функции возвращающие дескриптор: gcf, gco, gca + gcbf.

Функ. Findobj – позволяет определить дескриптор эл-та по заданному значению.

Findobj (дго, ис, зс), где дго – дескриптор графич окна; ис – имя св-ва; зс – значение св-ва.

Например Findobj (gcf, ‘Tag’, ‘edit1’), возвращает дескриптор эл-та интерфейса, размещенного в текущем окне и имеющего имя edit1.

Для определения значений св-ва эл-та используется функция get (дескриптор, ‘имя_св-ва’, знач_св-ва). Get(gcf,’BackgroundColor’) – возвр. цвет фона текущего графич. окна.

Для придания св-ву эл-та определенного знач. ипольз. команда set (дескриптор, ‘имя_св-ва’, знач_св-ва)

Функции:

strcat – канкатенация строк

str2num, num2str

char – перевод из аналитического вида в символьный

Например: dx=str2num(get(h3,’string’));