Учебное пособие: Создание графического интерфейса пользователя
end
Нажатие на кнопку Очистить приводит к появлению диалогового окна, изображенного на рис. 13. Выбор пользователя определяет дальнейшие действия приложения mygui.
Рис. 13. Диалоговое окно подтверждения
Функция questdlg позволяет управлять видом диалогового окна. Строка с названием кнопки, переданная в третьем дополнительном аргументе, определяет кнопку окна, которая может быть нажата пользователем при помощи клавиши <Enter>. Например, вызов
Button = questdlg('Очистить оси?','mygui', 'Yes');
предполагает, что в диалоговом окне нажатие клавиши <Enter> эквивалентно выбору кнопки Yes.
Число кнопок и надписи на них определяются создателем приложения, например, следующая форма обращения к функции questdlg
Button = questdlg('Очистить оси?', 'mygui','Да','Нет','Нет')
приводит к появлению диалогового окна с текстом Очистить оси?, заголовком mygui и двумя кнопками Да и Нет, причем нажатие <Enter> заменяет выбор Нет.
Окно с сообщением об ошибке
Некоторые действия пользователя, в частности открытие файла с данными в неизвестном формате, могут привести к ошибке в работе приложения. Такие исключительные ситуации следует предусматривать при написании алгоритма приложения и сопровождать их сообщением об ошибке. Лучше всего выводить сообщение в диалоговое окно, которое автоматически размещается поверх всех остальных окон и требует нажатия кнопки ОК для продолжения работы.
Функция errordlg предназначена для создания диалогового окна с сообщением об ошибке. Входными аргументами errordlg являются строки с текстом и заголовком окна.
Дополните построение графика данных проверкой на размерность и тип содержимого массива Mas при помощи функций size, ndims и isnumeric и выведите сообщение в случае несоответствующего формата данных. Заключите считывание и визуализацию данных в блок try...catch end для предотвращения ошибки при обращении к load (листинг 7). При работе в MatLab 6.x следует записать указатель на линию в структуру handles.line и сохранить, используя функцию guidata.
Листинг 11. Обработка исключительных ситуаций с сообщением об ошибке
try
% Считывание данных из файла в массив
Mas = load('data.txt');
% Определение размеров массива
SMas = size(Mas);
% Проверка массива данных
if ((SMas(2) ~= 2) | (ndims(Mas) ~= 2) | ~isnumeric(Mas))
errordlg('Неизвестный формат файла с данными', 'Ошибка!')
else
% Графическое отображение данных
headers.line = plot(Mas(:,1), Mas(: , 2) ) ;
end
catch