uigetpref

Создайте диалоговое окно, которое открывается согласно пользовательской настройке

Описание

pval = uigetpref(group,pref,title,quest,pbtns)создает немодальное диалоговое окно, которое открывается заданным названием группы и именем настройки. Группа и имена настройки, в комбинации, однозначно определяют диалоговое окно. Диалоговое окно содержит:

  • Заданный вопрос (quest) и одна или несколько кнопок (pbtns) это позволяет пользователю диалогового окна ответить на вопрос. Значение кнопки, по которому кликают, возвращено как pval.

  • Флажок, который, по умолчанию, помечен Do not show this dialog again.

Если пользователь устанавливает флажок, MATLAB® хранит и возвращает значение нажатой кнопки как значение настройки (pval). Последующие вызовы uigetpref для того же диалогового окна обнаружьте, что значение настройки хранилось, и примените тот выбор, не открывая диалоговое окно.

Если пользователь не устанавливает флажок, то MATLAB возвращается, но не хранит значение нажатой кнопки. Вместо этого MATLAB хранит значение 'ask'. MATLAB открывает заданное диалоговое окно на последующих вызовах uigetpref.

пример

[pval,tf] = uigetpref(group,pref,title,quest,pbtns) возвращает логическое значение, которое указывает ли открытое диалоговое окно. Если открытое диалоговое окно, то значение tf 1 TRUE. В противном случае, значение tf 0 ложь.

пример

[___] = uigetpref(___,Name,Value) задает одну или несколько дополнительных пар "имя-значение", которые позволяют вам сделать любое из следующих.

  • Настройте метку флажка.

  • Задайте, устанавливается ли флажок, когда диалоговое окно открывается.

  • Обеспечьте кнопку справки и коллбэк кнопки справки.

  • Задайте кнопки, которые не сопоставлены со значениями настройки.

  • Задайте значение это uigetpref возвращается для pval если пользователь закрывает диалоговое окно, не кликая по кнопке preference. Например, это значение возвращено, если пользователь кликает по диалоговому окну близкая кнопка (X), нажимает клавишу Esc клавиатуры или нажимает кнопку, которая не сопоставлена со значением настройки.

Используйте эту опцию с любой из комбинаций выходного аргумента в предыдущих синтаксисах.

Примеры

свернуть все

Задайте каждый из необходимых uigetpref входные параметры, и затем передают их uigetpref.

group = 'Updates';
pref =  'Conversion';
title = 'Converting';
quest = {'Are you sure you want to convert this code?',...
         'Conversions cannot be undone.'};
pbtns = {'Yes','No'};

[pval,tf] = uigetpref(group,pref,title,quest,pbtns)

Нажмите Yes. Командное окно MATLAB показывает что значение pval 'yes' и то значение tf 1, указание, что диалоговое окно было отображено.

Запуститесь uigetpref управляйте снова, но на этот раз выберите Do not show this dialog again, и затем нажмите No.

[pval,tf] = uigetpref(group,pref,title,quest,pbtns)

Командное окно MATLAB показывает что значение pval 'no' и то значение tf 1.

Запуститесь uigetpref управляйте снова.

[pval,tf] = uigetpref(group,pref,title,quest,pbtns)

Как ожидалось диалоговое окно не отображается. Командное окно MATLAB показывает что значение pval 'no' и то значение tf 0.

Повторно включите отображение диалогового окна путем устанавливания значения настройки к 'ask'.

setpref('Updates','Conversion','ask');

Запуститесь uigetpref управляйте снова. Диалоговое окно открывается.

[pval,tf] = uigetpref(group,pref,title,quest,pbtns)

Задайте 'ExtraOptions','Cancel' как пара "имя-значение", чтобы добавить Кнопку отмены в диалоговое окно. Если пользователь нажимает Cancel, MATLAB возвращает название кнопки в pval.

group = 'Updates';
pref =  'Conversion';
title = 'Converting';
quest = {'Are you sure you want to convert this code?',...
         'Conversions cannot be undone.'};
pbtns = {'Yes','No'};
[pval] = uigetpref(group,pref,title,quest,pbtns,...
'ExtraOptions','Cancel');

Создайте функцию, которая создает диалоговое окно настроек. Диалоговое окно спрашивает пользователя о сохранении фигуры прежде, чем закрыть его. На основе значения кнопки, которую нажимает пользователь, функция открывает диалоговое окно Save или закрывает фигуру, не сохраняя его.

function savefigconditionally
fig = gcf;

group ='mygraphics';
pref = 'savefigbeforeclosing';
title = 'Closing Figure';
quest = {'Do you want to save your figure before closing?'
         ''
         'If you do not save the figure, all changes will be lost'};
pbtns = {'Yes','No'};
[pval,tf] = uigetpref(group,pref,title,quest,pbtns);

switch pval
    case 'yes'  
    [file,path,indx] = uiputfile('fig', ...
                                  'Save current figure', ...
                                  'untitled.fig');
       if indx == 0    
           delete(fig);
       else                   
           saveas(fig,[path,file])
           delete(fig);
       end
   case 'no'               
       delete(fig);
       return
 end

Чтобы запустить этот пример, скопируйте и вставьте код в новый программный файл. Назовите файл savefigconditionally.m и сохраните его на своем пути поиска файлов. Использовать функцию в качестве CloseRequestFcn коллбэк, создайте фигуру и опционально отобразите некоторые данные на графике.

figure('CloseRequestFcn','savefigconditionally');
x = [1 2 3 4 5];
y = [10 50 25 75 25];
plot(x,y);
Каждый раз, когда вы запускаете предыдущий блок команд и кликаете по близкой кнопке (X) в строке заголовка фигуры, диалоговое окно открывается, если вы не выбираете Do not show this dialog again.

Входные параметры

свернуть все

Название группы настройки в виде вектора символов или строкового скаляра. Группа включает настройку, заданную pref входной параметр. Если группа не существует, MATLAB создает ее.

Пример: 'My Graphics'

Имя настройки в виде вектора символов или строкового скаляра.

Эта настройка хранит значение кнопки в заданном pbtns то, что пользователь щелкает. Если имя настройки не существует, то MATLAB создает его.

Пример: 'Save Graphic'

Заголовок диалогового окна в виде вектора символов или строкового скаляра.

Пример: 'Save preference'

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

  • Если вопрос задан как вектор символов, то разрывы строки происходят после вертикальной панели (|) символ или символ новой строки, заданный с newline функция.

  • Если вопрос задан как массив ячеек из символьных векторов, то разрывы строки происходят после каждого элемента массива ячеек.

Пример: {'Are you sure you want to convert this code?', 'Conversions cannot be undone.'}

Пример: 'Do you want to save this file before closing?'

Названия кнопок настройки в виде вектора символов, массива ячеек из символьных векторов, вертикального разграниченного панелью вектора символов или массива строк.

Если вы хотите задать внутренние значения настройки, которые отличаются от названий кнопок, то задают pbtns значение как 2 n массивом ячеек или массивом строк. Первая строка содержит имена настройки, и вторая строка содержит связанные названия кнопок. Например, рассмотрите использование этого подхода, если вы планируете локализовать свое диалоговое окно для различных языков. Можно задать названия кнопок с помощью иностранного языка, не имея необходимость изменять логику кода (например, switch и case операторы) для каждой локализации.

Когда pbtns не 2 n массивом ячеек, MATLAB хранит имя метки как значение настройки.

Пример: 'Yes'

Пример: {'Yes','No'}

Пример: ['Yes|No']

Пример: {'Oui','Non';'yes','no'} устанавливает названия кнопок на 'Oui' и 'Non' и их соответствующие значения настройки к 'yes' и 'no'.

Аргументы в виде пар имя-значение

Задайте дополнительные разделенные запятой пары Name,Value аргументы. Name имя аргумента и Value соответствующее значение. Name должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.

Пример: линия (x, y, 'Цвет', 'красный', 'LineWidth', 3), создает красную линию, которая является 3 широкими точками. Пример: 'CheckboxSting','Do not ask again.'

Начальное состояние флажка, когда диалоговое окно открывается в виде разделенной запятой пары, состоящей из 'CheckboxState' и 1,0TRUE, или false.

  • Флажок устанавливается, когда значением является true или 1

  • Флажок не устанавливается, когда значением является false или 0.

Пример: 'CheckboxState',0

Метка флажка в виде разделенной запятой пары, состоящей из 'CheckboxString' и вектор символов или строковый скаляр.

Название кнопки Help в виде разделенной запятой пары, состоящей из 'Help' и вектор символов или строковый скаляр. Если вы не задаете эту пару "имя-значение", никакая кнопка справки не отображена в диалоговом окне. Если вы задаете эту пару "имя-значение", но не задаете HelpFcn пара "имя-значение", затем MATLAB использует 'HelpFcn','doc(uigetpref)' по умолчанию.

Пример: 'HelpString','Info'

Помогите коллбэку кнопки в виде разделенной запятой пары, состоящей из 'HelpFcn' и указатель на функцию, массив строк или вектор символов (не рекомендуемый). Коллбэк выполняется, когда пользователь нажимает кнопку справки. Когда вы задаете эту пару "имя-значение", также необходимо задать 'HelpString' пара "имя-значение".

См. также, Запись обратных вызово для приложений, созданных программно

Пример: 'HelpFcn',@myfunc задает HelpFcn функция обратного вызова как указатель на функцию.

Метки для дополнительных кнопок в виде запятой разделенная пара, состоящая из 'ExtraOptions' и вектор символов, массив ячеек из символьных векторов или массив строк. Дополнительные кнопки не сопоставлены ни с какими настройками. Если пользователь нажимает какую-либо из этих кнопок, диалоговое окно закрывает и возвращает название кнопки как выходной аргумент pval.

Пример: 'ExtraOptions','Cancel'

Выбор кнопки по умолчанию в виде запятой разделенная пара, состоящая из 'DefaultButton' и вектор символов или строковый скаляр. Выбор кнопки по умолчанию возвращен в p если пользователь закрывает диалоговое окно, не нажимая кнопки. Это значение не должно соответствовать никакой кнопке preference или ExtraOption кнопка.

Пример: 'nobtn'

Выходные аргументы

свернуть все

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

  • Метка кнопки preference, по которой кликают (pbtns)

  • Внутреннее значение кнопки preference, по которой кликают,

Истинный или ложный результат, возвращенный как 1 или 0. Функция возвращает 1 (TRUE), если открытое диалоговое окно. В противном случае это возвращает 0. Это значение соответствует выбору флажка, сохранил в прошлый раз, когда диалоговое окно было открыто, и пользователь установил флажок (который помечен 'Do not show this dialog again' по умолчанию).

Больше о

свернуть все

Немодальное диалоговое окно

Немодальное диалоговое окно позволяет пользователю взаимодействовать с другими окнами MATLAB прежде, чем ответить на диалоговое окно. Немодальное диалоговое окно также упоминается как нормальное диалоговое окно.

Настройки

Настройки позволяют вам задать, как приложения ведут себя и как пользователи взаимодействуют с ними. Настройки сохраняются через сеансы и хранятся в базе данных настройки.

uigetpref функционируйте использует ту же базу данных настройки в качестве MATLAB встроенные продукты. Однако uigetpref указывает настройки, которые это устанавливает как отдельный список, так, чтобы это и uisetpref может управлять теми настройками.

Изменить настройки, указанные с uigetprefИспользование uisetpref или setpref. Например, использовать setpref изменить значение настройки в 'ask'.

Советы

  • uigetpref создает заданные группы и настройки, если они в настоящее время не существуют. Чтобы удалить настройку группируют вас, больше не нуждаются, используют rmpref.

  • Чтобы получить структуру ранее созданных групп и настроек, используйте getpref функция.

  • После того, как пользователь выбирает флажок Do not show this dialog again и закрывает диалоговое окно, диалоговое окно не открывается снова для той же группы и настройки. Чтобы повторно включить диалоговые окна, которые подавляются, устанавливает значение настройки к 'ask' использование setpref.

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

    uisetpref('clearall')
    Выполнение uisetpref как показано повторно включает все диалоговые окна настройки, заданные с uigetpref, не только новый.

Смотрите также

| | | | |

Представлено до R2006a