exponenta event banner

uigetpref

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

Описание

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

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

  • Флажок, который по умолчанию помечен как «Больше не показывать это диалоговое окно».

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

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

пример

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

пример

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

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

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

  • Выполните обратный вызов кнопки справки и кнопки справки.

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

  • Укажите значение, которое uigetpref возвращает для pval если пользователь закрывает диалоговое окно без нажатия кнопки предпочтения. Например, это значение возвращается, если пользователь нажимает кнопку закрытия диалогового окна (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)

Нажмите «Да». В окне команды MATLAB отображается значение pval является 'yes' и это значение tf является 1, указывающее на отображение диалогового окна.

Запустить uigetpref снова, но на этот раз выберите Не показывать это диалоговое окно снова, а затем нажмите кнопку Нет.

[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) в строке заголовка фигуры диалоговое окно открывается, если не выбран параметр «Не показывать это диалоговое окно снова».

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

свернуть все

Имя группы предпочтений, указанное как вектор символов или скаляр строки. Группа включает в себя настройку, указанную 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.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Пример: 'nobtn'

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

свернуть все

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

  • Метка нажатой кнопки предпочтения (pbtns)

  • Внутреннее значение нажатой кнопки предпочтения

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

Подробнее

свернуть все

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

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

Предпочтения

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

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

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

Совет

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

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

  • После установки пользователем флажка Не показывать это диалоговое окно снова и закрытия диалогового окна диалоговое окно не открывается снова для той же группы и настройки. Чтобы снова включить подавляемые диалоговые окна, задайте для настройки значение 'ask' использование setpref.

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

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

См. также

| | | | |

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