waitbar

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

Синтаксис

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

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

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

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

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

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

Пример: 'Ожидайте'

Пример: {'Ожидайте', 'Операция обрабатывает'}

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

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

Укажите необязательные аргументы в виде пар ""имя, значение"", разделенных запятыми. Имя (Name) — это имя аргумента, а значение (Value) — соответствующее значение. Имя должно появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.

Пример: 'Назовите', 'ожидайте панель'

Примечание

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

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

Примечание

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

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

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

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

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

Пример: фигура ('Имя', 'Результаты') определяет имя фигуры к 'Результатам'.

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

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

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

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

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

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

Все измерения указаны в единицах, заданных свойством 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

Была ли эта тема полезной?