Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Glava_2a70_2014.doc
Скачиваний:
5
Добавлен:
01.07.2025
Размер:
5 Мб
Скачать
☆

§ 2.43. Диалоговые окна в matlab

Простейшее диалоговое окно может быть создано с помощью функции следующей структуры:

msgbox('сообщение','заголовок_окна','тип_значка')

где тип_значка означает одну из следующих строк: 'none' – нет значка; 'warn' – значок обычного сообщения; 'error' – значок сообщения об ошибке; 'help' – значок справки.

Так, например, на рис. 2.43.1 представлено окно сообщения, создаваемое командой

msgbox('Внимание ошибка!','Аварийное окно','error')

Окно для ввода создается функцией inputdlg с синтаксисом вида:

inputdlg('подсказка','заголовок_окна')

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

Пример использования функции inputdlg приведен ниже (рис. 2.43.2):

Рис. 2.42.8. Окно работающего приложения.

Рис. 2.43.1. Пример окна с сообщением.

Рис. 2.43.2. Пример окна ввода с введенными значениями.

Рис. 2.43.3. Пример окна, создаваемого функцией questdlg.

>> s=inputdlg({'x=','y='},'Окно для ввода значений x, y');

>> x=num2str(s{1})

x =

5

>> y=num2str(s{2})

y =

7

Простейшее диалоговое окно с запросом задается с помощью функции questdlg, имеющей следующий синтаксис:

questdlg('вопрос','заголовок_окна','заголовок_окна')

Данная функция создает окно с вопросом и заголовком, в котором имеются три кнопки (Yes, No, Cancel), одна из которых является кнопкой по умолчанию (в приводимом ниже примере – это кнопка Cancel). Функция возвращает строку с надписью кнопке. На рис. 2.43.3 показано окно, создаваемое представленной ниже функцией:

>> questdlg('Сделайте выбор','Окно выбора','Cancel')

ans =

Cancel

Для выбора файла для чтения в системе MATLAB имеется функция uigetfile, синтаксис обращения к которой имеет следующий вид:

[file,path]=uigetfile('maska','Заголовок')

где maska определяет папку, которая выводится на экран, и маску файла; функция возвращает строки с именем файла (file) и путь к нему (path).

В частности, на рис. 2.43.4 представлено окно, выводящееся на экран монитора в результате выполнения следующего фрагмента программы:

>> [f,p]=uigetfile('C:\Users\Pavel\Documents\MATLAB\*.*','Окно выбора')

f =

Sample_GUI_3.fig

p =

C:\Users\Pavel\Documents\MATLAB\

Для выбора файла для записи в системе MATLAB существует аналогичная функция uiputfile, синтаксис обращения к которой имеет вид:

Рис. 2.43.4. Окно открытия файла для чтения.

Для выбора файла для записи в системе MATLAB существует аналогичная функция uiputfile, синтаксис обращения к которой имеет вид:

[file,path]=uiputfile('maska','Заголовок')

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

§ 2.44. Динамическое создание компонентов

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

hcomp=uicontrol(hf,'Style','тип_компонента','свойство1',

'значение1','свойство2','значение2',...)

где hf – указатель на объект, внутри которого будет создаваться компонент (если данный параметр отсутствует, то компонент создается в текущем графическом объекте); тип_компонента определяет, к какому классу принадлежит создаваемый компонент (возможные значения: 'text' – метка (статический текст), 'edit' – окно редактирования, 'pushbutton' – кнопка, 'radiobutton' – переключатель, 'checkbox' – флажок, 'listbox' – список); компонент создается со значениями свойств, указанных в функции uicontrol и со значениями, принимаемыми по умолчанию.

Приведем ниже пример программы создания компонентов в окне, после выполнения которой формируется окно, показанное на рис. 2.44.1.

Рис. 2.44.1. Пример динамически созданных компонентов.

% Создаем окно

h1=figure;

% Создаем кнопку

hbt1=uicontrol(h1,'Style','pushbutton','String',...

'OK','Position',[20,30,25,35]);

% Создаем список

hlist1=uicontrol('Style','listbox','String',...

{'Красный','Желтый','Зеленый'},'Position',...

[150,150,100,190]);

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