waitbar

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

Если вы используете App Designer или создаете приложения с функцией uifigure, то используйте uiprogressdlg вместо этого. Для получения дополнительной информации см. Мигрирующие Приложения GUIDE к App Designer.

Синтаксис

f = waitbar(x,msg)
f = waitbar(x,msg,Name,Value)
waitbar(x)
waitbar(x,f)
waitbar(x,f,msg)

Описание

пример

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

пример

f = waitbar(x,msg,Name,Value) задает дополнительные опции с помощью одного или нескольких аргументов пары "имя-значение", которые устанавливают свойства figure на диалоговом окне. Например, 'Name','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, чтобы позволить пользователю остановить происходящее вычисление.

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

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

Примечание

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

Коллбэк кнопки 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Расстояние от левого края главного дисплея к внутреннему левому краю окна. Это значение может быть отрицательным в системах, которые имеют больше чем один монитор.

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

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

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

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

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

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

Примечание

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

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

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

'pixels'.

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

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

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

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

'normalized'Эти модули нормированы относительно родительского контейнера. Нижний левый угол контейнера сопоставляет с (0,0), и верхний правый угол сопоставляет с (1,1).
'inches''inches'.
'centimeters''centimeters'.
'points''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'. Опция 'docked' не поддержана в MATLAB Online.

Примечание

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

  • Когда вы создаете окна UI, всегда задаете свойство 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' на фигуре с дочерними элементами меню. Объекты Menu существуют, и фигура сохраняет их. Если вы сбрасываете свойство WindowStyle фигуры к 'normal', отображению меню.

Больше о

свернуть все

Модальное диалоговое окно

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

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

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

Waitbar

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

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

| | |

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