uigetpref

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

Синтаксис

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

Описание

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 является (TRUE) 1. В противном случае значением tf является (FALSE) 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 должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.

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

Начальное состояние флажка, когда диалоговое окно открывается, заданный как пара, разделенная запятой, состоящая из 'CheckboxState' и 1, 0, true или 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 прежде, чем ответить на немодальное диалоговое окно. Немодальное диалоговое окно также упоминается как normal.

Настройки

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

Функция 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