waitbar

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

Описание

пример

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

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

пример

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

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

Примечание

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

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

Примечание

Вызовите delete функция, чтобы удалить диалоговое окно панели ожидания, когда вы задаете CreateCancelBtn 'callback'. Когда вы задаете 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 прежде, чем ответить на диалоговое окно. Немодальное диалоговое окно также упоминается как нормальное диалоговое окно.

Waitbar

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

Советы

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

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

| | | |

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