Основные этапы создания приложений с графическим интерфейсом пользователя в среде GUIDE

Разработка приложения в среде визуального программирования GUIDE состоит из следующих этапов:

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

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

При создании элементов управления в окне приложения каждому из них задается некоторый тэг (имя) для обращения к этому элементу управления в подфункциях. Тэги, задаваемые автоматически в среде GUIDE, лучше изменять так, чтобы по тэгу легко было догадаться о назначении элемента управления. Например, при создании пункта XGrid меню Grid в примере, описанном в разд. Создание и программирование меню и контекстного меню, мы дадим пункту меню тэг mnGrid_XGrid, а при создании пункта XGrid контекстного меню мы дадим пункту меню тэг cmnAxes_XGrid. Следует отличать тэг объекта от надписи на нем. Тег в нашем случае - cmnAxes_XGrid, а надпись - XGrid.

При выборе пользователем пункта меню возникает его событие Callback и происходит обращение к соответствующей подфункции в m-файле. Ее имя состоит из двух частей, разделенных знаком подчеркивания: тэга и названия события. Например, при выборе пользователем пункта XGrid (с тэгом cmnAxes_XGrid) контекстного меню осей произойдет обращение к автоматически сгенерированной подфункции


Автоматически создаваемый заголовок подфункции

Очень важно понимать, как узнавать и изменять свойства элементов управления в подфункциях обработки событий. Первый входной аргумент подфункции обработки события hObject содержит указатель на тот объект, событие которого произошло. В нашем примере входной аргумент hObject подфункции cmnAxes_XGrid_Callback содержит указатель на пункт меню cmnAxes_XGrid.

Для того, чтобы узнать, включил или выключил флаг пользователь, выбрав этот пункт меню, нам понадобится получить значение свойства Checked этого пункта. Для получения значения свойств объектов в MATLAB предназначена функция get. Ее первым входным аргументом является указатель на объект, значение свойства которого мы хотим получить, а во втором входном аргументе указывается название этого свойства, заключенное в апострофы:

state = get(hObject, 'Checked')

У пункта свойства Checked пункта меню, снабженного флагом, может быть всего два строковых значения:

  • 'on' - флаг поставлен;
  • 'off' - флаг сброшен.

В зависимости от значения свойства Checked пункта меню мы и будем предпринимать дальнейшие действия при программировании обработки события, возникшего при выборе пользователем данного пункта меню.

Следующий важный вопрос при программировании приложения с графическим интерфейсом состоит в том, как из подфункции обработки события одного объекта получить доступ к свойствам другого объекта и изменить их. Третьим входным аргументом подфункции cmnAxes_XGrid_Callback является структура handles с полями, имена которых совпадают с тегами объектов, размещенных в окне приложения. Эти поля содержат указатели на соответствующие элементы. При работе со структурами следует отделять имя структуры от имени поля точкой, например:

handles.mnGrid_XGrid

содержит указатель на пункт XGrid (с тэгом mnGrid_XGrid) меню Grid.

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

set(handles.mnGrid_XGrid, 'Checked', 'off')

выключит флаг у пункта XGrid (с тэгом mnGrid_XGrid) меню Grid. Это все понадобится нам для программирования согласованного поведения элементов управления.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: