Main Content

本页的翻译已过时。点击此处可查看最新英文版本。

uiprogressdlg

创建进度对话框

说明

d = uiprogressdlg(fig) 在图窗 fig 中显示确定进度对话框,并返回 ProgressDialog 对象。该图窗必须使用 uifigure 函数创建。

示例

d = uiprogressdlg(fig,Name,Value) 使用 Name,Value 对组参数指定 ProgressDialog 属性值。可通过属性值控制对话框的外观和行为。例如,您可以在对话框中添加标题或消息,或者指定不确定进度条。

示例

全部折叠

创建一个名为 myprogress1.m 的程序文件,用该文件创建一个图窗和一个进度对话框。更新代码中三个不同点的 ValueMessage 属性。

function myprogress1
    fig = uifigure;
    d = uiprogressdlg(fig,'Title','Please Wait',...
        'Message','Opening the application');
    pause(.5)

    % Perform calculations
    % ...
    d.Value = .33; 
    d.Message = 'Loading your data';
    pause(1)

    % Perform calculations
    % ...
    d.Value = .67;
    d.Message = 'Processing the data';
    pause(1)

    % Finish calculations
    % ...
    d.Value = 1;
    d.Message = 'Finishing';
    pause(1)

    % Close dialog box
    close(d)
end

运行该程序以显示进度对话框。

myprogress1

创建一个名为 myprogress2.m 的程序文件,用该文件创建一个图窗,并在奇异值分解期间显示不确定进度条。

function myprogress2
    fig = uifigure;
    d = uiprogressdlg(fig,'Title','Computing SVD',...
        'Indeterminate','on');
    drawnow
    
    % Do the SVD computation
    svd(rand(5000));

    % close the dialog box
    close(d)
end

Indeterminate 属性设置为 'on' 将以动画方式显示进度条,指示不知道预计完成时间。计算完成后,将由 close 函数关闭对话框。

运行该程序以执行奇异值分解并显示进度对话框。

myprogress2

创建一个名为 myprogress3.m 的程序文件,用该文件创建一个图窗并显示求 pi 近似值的进度条。

function myprogress3
    fig = uifigure;
    d = uiprogressdlg(fig,'Title','Approximating Pi',...
        'Message','1','Cancelable','on');
    drawnow

    % 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 Cancel button press
        if d.CancelRequested
            break
        end
        % Update progress, report current estimate
        d.Value = step/steps;
        d.Message = sprintf('%12.9f',valueofpi);

        % Calculate next estimate
        pisqover8 = pisqover8 + 1 / (denom * denom);
        denom = denom + 2;
        valueofpi = sqrt(8 * pisqover8);
    end

    % Close the dialog box
    close(d)
end

Cancelable 属性设置为 'on' 将创建默认标签为取消的取消按钮。for 循环中的第一个命令检查 d.CancelRequested 的值,以查看用户是否点击了取消按钮。如果该值为 true,则程序退出循环。最后,在 for 循环结束或用户取消后,由 close(d) 命令关闭对话框。

运行该程序以求 pi 的近似值并显示进度对话框。

myprogress3

输入参数

全部折叠

目标图窗,指定为 Figure 对象。图窗必须使用 uifigure 函数创建。

名称-值对组参数

指定可选的、以逗号分隔的 Name,Value 对组参数。Name 为参数名称,Value 为对应的值。Name 必须放在引号中。您可采用任意顺序指定多个名称-值对组参数,如 Name1,Value1,...,NameN,ValueN 所示。

示例: d = uiprogressdlg(uifigure,'Value',0.25)

注意

此处所列的属性只是一部分。有关完整列表,请参阅 ProgressDialog 属性

完成的部分,指定为 01 之间的数字。当值为 1 时,进度条达到其全长。在代码中的不同位置更改 Value,以直观指示正在运行的 App 的进度。

数据类型: double

消息,指定为字符向量、字符向量元胞数组或字符串数组。消息显示在对话框中进度条的上方。

要显示多行文本,请指定字符向量元胞数组或字符串数组。数组中的每个元素对应一行文本。每个元素中的硬分行(例如 '\n')会创建额外的文本行。

示例: d = uiprogressdlg(uifigure,'Message','Calculating result.');

标题,指定为字符向量或字符串标量。标题显示在对话框的标题栏中。

示例: d = uiprogressdlg(uifigure,'Title','Calculating');

不确定进度,指定为 'off''on',或者指定为数值或逻辑值 1 (true) 或 0 (false)。值 'on' 等效于 true'off' 等效于 false。因此,您可以使用此属性的值作为逻辑值。该值存储为 matlab.lang.OnOffSwitchState 类型的 on/off 逻辑值。

将此属性设置为 'on' 以显示动画进度条但不提供具体进度信息。此动画适用于计算时长未知的情形。

为防止不确定进度条无限期显示,请在完成计算后调用 close 函数。

允许取消,指定为 'off''on',或者指定为数值或逻辑值 1 (true) 或 0 (false)。值 'on' 等效于 true'off' 等效于 false。因此,您可以使用此属性的值作为逻辑值。该值存储为 matlab.lang.OnOffSwitchState 类型的 on/off 逻辑值。

值为 'on' 表示在对话框中显示取消按钮。您可以通过指定 CancelText 属性来自定义按钮标签。

当您允许取消时,您必须检查 CancelRequested 属性的值,并在值为 true 时调用 close 函数。否则,对话框将无限期显示。

另请参阅

函数

属性

在 R2018a 中推出