0


MATLAB中uiprogressdlg函数用法

    uiprogressdlg函数的功能是创建进度对话框。

语法

d = uiprogressdlg(fig)
d = uiprogressdlg(fig,Name,Value)

说明

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

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

示例

确定进度条

    创建一个名为 myprogress1.m 的程序文件,用该文件创建一个图窗和一个进度对话框。更新代码中三个不同点的 Value 和 Message 属性。
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

如图所示:

自定义进度对话框外观

    使用 HTML 指定自定义图标和格式化消息文本,以修改进度对话框的外观。

    创建一个名为 myprogress4.m 的程序文件,用该文件创建一个图窗并显示进度条。将一个图像文件指定为对话框图标,然后指定对话框将其消息文本解释为 HTML。使用 winter 颜色图创建一个 RGB 颜色值矩阵。使用 for 循环来更新进度条值,并通过使用 HTML 标记来格式化和显示消息颜色。在循环完成后关闭对话框。
function myprogress4
    fig = uifigure;
    d = uiprogressdlg(fig,'Icon','peppers.png', ...
        'Interpreter','html');

    steps = 100;
    cmap = winter(steps)*100;
    for step = 1:steps
        r = num2str(cmap(step,1));
        g = num2str(cmap(step,2));
        b = num2str(cmap(step,3));
        msg = ['<p style=color:rgb(' r '%,' g '%,' b '%)> Calculating... </p>'];
        d.Message = msg;
        d.Value = step/steps;
        pause(0.05);
    end

    close(d)
end

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

myprogress4

如图所示:

标签: matlab 开发语言

本文转载自: https://blog.csdn.net/jk_101/article/details/133358359
版权归原作者 jk_101 所有, 如有侵权,请联系我们删除。

“MATLAB中uiprogressdlg函数用法”的评论:

还没有评论