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
如图所示:
版权归原作者 jk_101 所有, 如有侵权,请联系我们删除。