АкушерствоАнатомияАнестезиологияВакцинопрофилактикаВалеологияВетеринарияГигиенаЗаболеванияИммунологияКардиологияНеврологияНефрологияОнкологияОториноларингологияОфтальмологияПаразитологияПедиатрияПервая помощьПсихиатрияПульмонологияРеанимацияРевматологияСтоматологияТерапияТоксикологияТравматологияУрологияФармакологияФармацевтикаФизиотерапияФтизиатрияХирургияЭндокринологияЭпидемиология
|
Создание законченных приложений на основе графического интерфейса пользователя
#$+ Графические окна системы MATLAB и элементы управления.
Работая в интерактивном режиме, мы имели дело с графическими окнами (команда figure), в которых сама система MATLAB создавала графический объект Axes, на поверхности которого осуществлялась прорисовка осей системы координат и изображение графиков функций (в том числе трёхмерных).
Для подготовки информации, необходимой для построения графиков функций, мы вводили команды в командном окне MATLABа, получая необходимую числовую информацию и накапливая её в переменных рабочего пространства.
Если требуются громоздкие и сложные предварительные вычисления, то такую работу лучше всего оформить в виде отдельных M-функций. Вызывая эти функции из командного окна MATLABа, получаем необходимую информацию и запоминаем её в переменных-массивах системы MATLAB. Затем по команде figure создаём новое графическое окно, после чего командами plot, plot3, mesh, surf или surfl воспроизводим графики.
Такая работа требует больших знаний команд и функций системы MATLAB, знаний основ программирования в рамках этой системы. Поэтому повторить все эти действия стороннему пользователю будет затруднительно. Даже самому разработчику для выполнения многочисленных повторяющихся заданий было-бы удобнее иметь некоторый объёдиняющий механизм, позволяющий удобным и наглядным способом выполнять все виды разнородных работ.
Для этих целей в системе MATLAB применяются графические элементы управления, располагающиеся на поверхности графических окон и позволяющие вводить и читать числовую и текстовую информацию, нажатием кнопок инициировать выполнение нескольких M-функций сразу с последующим автоматическим показом результатов вычислений на поверхности графического объекта Axes того же графического окна. Из командного окна MATLABа потребуется всего лишь один раз вызвать M-функцию, создающую такое графическое окно.
Мы будем рассматривать следующие графические объекты управления: объект Axes, предназначенном для построения графиков функций, а также несколько объектов общего типа uicontrol. К последним относятся командные кнопки, текстовые поля с возможностью редактирования текста и без такой возможности, переключатели и списки.
Помимо графических элементов управления в графических окнах можно создавать также дополнительные команды меню (помимо стандартных команд, присутствующих во всех без исключения графических окнах), но мы здесь этой возможностью пользоваться не будем.
Все перечисленные выше графические объекты выполнены в системе MATLAB по объектной технологии и характеризуются присущим им набором свойств. Меняя последние, мы модифицируем их внешний вид и поведение. Чтобы изменить свойства графических объектов, нужно получить доступ кним по их описателю (число, уникально идентифицирующее конкретный объект).
Описатель графического объекта возвращают функции, создающие эти объекты. Запомнив эти описатели в глобальных переменных, мы всегда впоследствии будем иметь возможность доступа к ним. Другим, более простым способом получения описателей, является использование специальных функций MATLABа, таких, например, как функция gcf (Get Current Figure - получить описатель текущего графического окна).
Например, команда figure создаёт графическое окно стандартного (заданного по умолчанию) цвета. Если нам требуется изменить цвет на красный, то это легко выполнить, получив описатель окна функцией gcf, а затем присвоив новое значение свойству 'Color' (цвет):
hWnd = gcf; set(hWnd, 'Color', 'red');
или ещё короче
Дата добавления: 2015-01-18 | Просмотры: 558 | Нарушение авторских прав
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 |
|