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 Правда. В противном случае значение tf является 0 (false).

пример

[___] = 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)

Нажмите 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 не является массивом ячеек n 2 байта, 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 метка, заданная как разделенная разделенными запятой парами, состоящая из '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 функция.

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

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

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

См. также

| | | | |

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