waitbar

Создайте или обновите диалоговое окно панели ожидания

Описание

пример

f = waitbar(x,msg) создает немодальное диалоговое окно, содержащее панель ожидания с заданным сообщением. Планка ожидания имеет дробную длину x. Диалоговое окно остается открытым до тех пор, пока код, который управляет им, не закроет его или пользователь не нажмет кнопку закрытия (X) в строке заголовка диалогового окна. The Figure объект возвращается следующим f.

Используйте waitbar если вы хотите показать диалоговое окно панели ожидания в нескольких окнах приложения, MATLAB® рабочий стол, или Simulink® и по-прежнему иметь возможность взаимодействовать с ними перед ответом на диалоговое окно.

пример

f = waitbar(x,msg,Name,Value) задает дополнительные опции, используя один или несколько аргументы пары "имя-значение", которые задают figure свойства в диалоговом окне. Для примера, 'Name','Progress' устанавливает имя диалогового окна на Прогресс (Progress). Задайте аргументы пары "имя-значение" после всех других входных параметров.

waitbar(x) обновляет длину полосы в текущем диалоговом окне панели ожидания следующим образом x. Последующие значения x обычно увеличивается. Если они уменьшаются, планка ожидания запускается назад.

waitbar(x,f) обновляет длину панели в диалоговом окне панели ожидания f на новую должность x.

пример

waitbar(x,f,msg) обновляет сообщение в диалоговом окне панели ожидания f.

Примеры

свернуть все

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

Используйте этот код для моделирования выполнения длительных расчетов. pause функция передает объект рисунка первого диалогового окна панели ожидания в последующее waitbar вызовы функций. Передача объекта рисунка таким образом гарантирует, что диалоговое окно обновляется в каждой точке, а не воссоздается. Когда моделируемое вычисление завершится, диалоговое окно закроется.

function basicwaitbar
f = waitbar(0,'Please wait...');
pause(.5)

waitbar(.33,f,'Loading your data');
pause(1)

waitbar(.67,f,'Processing your data');
pause(1)

waitbar(1,f,'Finishing');
pause(1)

close(f)
end

Добавьте кнопку Cancel, чтобы позволить пользователю остановить текущие расчеты.

Используйте следующий код, чтобы сходиться по значению pi в for Итерации цикла, обновление полосы ожидания и сообщения с каждой итерацией. Когда пользователь нажимает кнопку Cancel MATLAB устанавливает логический флаг, 'canceling', для 1 (true) в данных приложения рисунка (appdata). Код проверяет это значение в цикле for и выходит из цикла, если значение флага 1. Дополнительные сведения о данных приложения см. в разделе Хранение данных как данных приложения.

Установите CreateCancelBtn Коллбэк к вектору символов значению. Эта практика не рекомендуется, если код, заданный в значении, не прост, как в этом коде коллбэка. Для получения дополнительной информации смотрите Запись коллбэков для приложений, созданных программно.

function approxpi

f = waitbar(0,'1','Name','Approximating pi...',...
    'CreateCancelBtn','setappdata(gcbf,''canceling'',1)');

setappdata(f,'canceling',0);

% Approximate pi^2/8 as: 1 + 1/9 + 1/25 + 1/49 + ...
pisqover8 = 1;
denom = 3;
valueofpi = sqrt(8 * pisqover8);

steps = 20000;
for step = 1:steps
    % Check for clicked Cancel button
    if getappdata(f,'canceling')
        break
    end
    
    % Update waitbar and message
    waitbar(step/steps,f,sprintf('%12.9f',valueofpi))
    
    % Calculate next estimate 
    pisqover8 = pisqover8 + 1 / (denom * denom);
    denom = denom + 2;
    valueofpi = sqrt(8 * pisqover8);
end

delete(f)
end

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

свернуть все

Дробная длина полосы ожидания, заданная как действительное число между 0 и 1. Последующие значения x обычно увеличивается. Если они уменьшаются, то планка ожидания запускается назад.

Пример: .75

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

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

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

Пример: 'Please Wait'

Пример: {'Please wait', 'The operation is processing'}

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

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

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

Пример: 'Name','Wait Bar'

Примечание

Перечисленные здесь свойства являются только подмножеством свойств, которые можно задать. Полный список см. в разделе Свойств фигуры».

Cancel коллбэк кнопки, заданный как указатель на функцию, массив ячеек или вектор символов (не рекомендуемый). MATLAB устанавливает и коллбэк кнопки Cancel, и рисунок CloseRequestFcn значение коллбэка к командам, заданным callback значение аргумента. Для получения дополнительной информации смотрите Запись коллбэков для приложений, созданных программно.

Примечание

Вызовите delete функция для удаления диалогового окна панели ожидания при задании CreateCancelBtn коллбэк. Когда вы задаете CreateCancelBtn коллбэк, close функция не закрывает диалоговое окно и делает кнопки Cancel и закрытия (X) невосприимчивыми. Эта ситуация происходит потому, что CreateCancelBtn коллбэк рекурсивно вызывает сам. В такой ситуации необходимо принудительно удалить полосу ожидания, например, используя такой код, как этот:

set(groot,'ShowHiddenHandles','on')
delete(get(groot,'Children'))
Однако выполнение этих команд удаляет все открытые рисунки, а не только диалоговое окно панели ожидания.

Пример: waitbar(.5,'Processing','CreateCancelBtn',@myfun) задает CreateCancelBtn функция обратного вызова как указатель на функцию.

Пример: waitbar(.5,'Processing','CreateCancelBtn',{@myfun,x}) задает CreateCancelBtn функция обратного вызова как массив ячеек. В этом случае функция принимает входной параметр, x.

Имя рисунка, заданное как вектор символов или строковый скаляр.

Пример: figure('Name','Results') устанавливает имя рисунка равным 'Results'.

По умолчанию имя 'Figure n', где n - целое число. Когда вы задаете Name свойство, заголовок рисунка становится 'Figure n: name'. Если вы хотите только Name значение, которое должно появиться, задать IntegerHandle или NumberTitle на 'off'.

Расположение и размер области векторной и растровой графики, заданные как вектор формы [left bottom width height]. Эта область исключает границы рисунка, строку заголовка, панель меню и панели инструментов.

Эта таблица описывает каждый элемент в Position вектор.

ЭлементОписание
leftРасстояние от левого края первичного отображения до внутреннего левого края окна. Это значение может быть отрицательным для систем, которые имеют более одного монитора.

Если рисунок закреплен, это значение соответствует панели Figure на рабочем столе MATLAB.
bottomРасстояние от нижнего ребра первичного отображения до внутреннего нижнего ребра окна. Это значение может быть отрицательным для систем, которые имеют более одного монитора.

Если рисунок закреплен, это значение соответствует панели Figure на рабочем столе MATLAB.
widthРасстояние между правым и левым внутренними краями официбара.
heightРасстояние между верхним и нижним внутренними краями окна.

Все измерения указаны в модулях, заданных Units свойство.

Вы не можете задать рисунок Position свойство, когда рисунок закреплён.

В MATLAB Online™ bottom и left элементы Position вектор игнорируется.

Чтобы разместить полное окно, включая границы, строку заголовка, панель меню, панели инструментов, используйте OuterPosition свойство.

Примечание

Windows® операционная система обеспечивает минимальную ширину окна и максимальный размер окна. Если вы задаете размер фигуры за пределами этих пределов, отображаемый рисунок будет соответствовать пределам вместо заданного размера.

Единицы измерения, заданные в качестве одного из значений из этой таблицы.

Модули измеренияОписание
'pixels' (по умолчанию)

Пиксели.

Начиная с R2015b, расстояния в пикселях не зависят от вашего системного разрешения в системах Windows и Macintosh:

  • В системах под управлением Windows пиксель составляет 1/96 дюйма.

  • В системах Macintosh пиксель составляет 1/72 дюйма.

На Linux® систем, размер пикселя определяется вашим системным разрешением.

'normalized'Эти модули измерения нормированы относительно родительского контейнера. Нижний левый угол контейнера сопоставлен с (0,0) и правый верхний угол преобразуется в (1,1).
'inches'Дюймы.
'centimeters'Сантиметры.
'points'Точки. Одна точка равна 1/72 дюйма.
'characters'

Эти модули основаны на шрифте uicontrol по умолчанию графического корневого объекта:

  • Ширина символа = ширина буквы x.

  • Высота символа = расстояние между базовыми линиями двух строк текста.

Для доступа к шрифту uicontrol по умолчанию используйте get(groot,'defaultuicontrolFontName') или set(groot,'defaultuicontrolFontName').

MATLAB измеряет все модули измерения в левом нижнем углу родительского объекта.

Это свойство влияет на Position свойство. Если вы меняете Units свойство, рассмотрите возврат его значения к значению по умолчанию после завершения расчетов, чтобы избежать влияния на другие функции, которые берут значение по умолчанию.

Порядок, в котором вы задаете Units и Position свойства имеют следующие эффекты:

  • Если вы задаете Units перед Position свойство, затем MATLAB устанавливает Position используя модули.

  • Если вы задаете Units свойство после Position свойство, MATLAB устанавливает положение используя значение по умолчанию Units. Затем MATLAB преобразует Position значение эквивалентного значения в заданных модулях.

Стиль окна, заданный как один из следующих:

  • 'normal' - Окно рисунка не зависит от других окон, а другие окна доступны во время отображения рисунка.

  • 'modal' - рисунок отображается поверх всех существующих окон рисунка, что делает их недоступными, пока верхняя фигура существует и остается модальной. Однако отобразятся все новые рисунки, созданные после модального рисунка.

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

  • 'docked' - рисунок отображается на рабочем столе или в окне документа. Когда WindowStyle для свойства задано значение 'docked', вы не можете задать DockControls свойство к 'off'. The 'docked' опция не поддерживается в MATLAB Online.

Примечание

Это некоторые важные характеристики WindowStyle свойство и некоторые рекомендуемые лучшие практики:

  • Когда вы создаете окна пользовательского интерфейса, всегда задайте WindowStyle свойство. Если вы также хотите задать Resize, Position, или OuterPosition свойства рисунка, затем установите WindowStyle сначала свойство.

  • Можно изменить WindowStyle свойство рисунка в любое время, в том числе когда рисунок виден и содержит дочерние элементы. Однако в некоторых системах установка этого свойства может привести к вспышке или исчезновению рисунка и ее повторному появлению, в зависимости от реализации системой нормальных и модальных окон. Для наилучших визуальных результатов установите WindowStyle свойство во время создания или когда рисунок невидим.

  • Вызов reset на рисунке не изменяет значение WindowStyle свойство.

Поведение стиля модального окна

Когда WindowStyle установлено в 'modal', окно рисунка блокирует все действия клавиатуры и мыши во всех окнах MATLAB, пока окна видны. Windows, принадлежащие приложениям, отличным от MATLAB, не затронуты.

Типирование Ctrl+C, когда модальный рисунок имеет особое внимание, заставляет эту фигуру вернуться к 'normal' WindowStyle настройка свойств. Это позволяет пользователю вводить текст в командной строке.

Фигуры с WindowStyle значение свойства установлено в 'modal' и Visible значение свойства установлено в 'off' не вести себя модально, пока MATLAB не сделает их видимыми. Поэтому можно скрыть модальное окно для последующего повторного использования, вместо того, чтобы уничтожать его.

Модальные рисунки не отображают дочерние элементы меню, встроенные меню или панели инструментов. Но не является ошибкой создавать меню в модальном рисунке или изменять WindowStyle установка значения свойства 'modal' на рисунке с дочерними элементами меню. The Menu объекты существуют, и рисунок сохраняет их. Если вы сбросили рисунок WindowStyle свойство к 'normal', меню отображения.

Подробнее о

свернуть все

Диалоговое окно Modal

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

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

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

Панель ожидания

Индикатор, который отображает, какой процент вычисления завершен, когда вычисление выполняется путем постепенного заполнения полосы цветом слева направо. Планка ожидания также упоминается как индикатор прогресса.

Совет

  • Чтобы создать диалоговое окно модального прогресса для однооконного App Designer или uifigure- основанные на приложениях, используйте uiprogressdlg вместо этого функция.

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