本文将介绍进度条的两种使用方法:基础用法和带取消按钮的进度条
一、waitbar进度条的基础用法
1.进度条的创建
进度条在创建的同时可进行相关配置,本文仅讲最简单的用法,对更多内容感兴趣的同学可参考官网。
fbar = waitbar(0,'Please wait...');
waitbar用于创建进度条;第一个输入参数是进度条的长度,此处为0,后面会慢慢增加为1;第二个输入参数是进度条窗口上显示的文字。fbar是进度条窗口对象,后面对进度条的操作都要用到它,可将它设置为全局变量。
2.更新进度条
进度条的更新主要是更新进度条长度和显示的文字。假设某个事件要执行Y次,现在已执行X次,那么进度条长度则为X/Y。
waitbar(X/Y,fbar,'Loading your data…');
3.关闭进度条
close(fbar);
4.删除进度条
delete(fbar);
二、带有取消按钮的进度条
带有取消按钮的进度条关闭和删除操作都一样,因此下面回主要讲解如何添加取消按钮回调函数和回调函数的实现。
1.进度条的创建
取消按钮的实现需要配置进度条的CreateCancelBtn属性,配置方法如下:
fbar = waitbar(0,'Please wait...','CreateCancelBtn',@(~, ~)Cancelcallback(app));
其中Cancelcallback是回调函数,app是回调函数的输入参数。
2.回调函数的实现
function Cancelcallback(app)
app.isCancelcal = 1;
end
isCancelcal 是一个全局变量,用来标志进度条是否被取消。除了置位标志位,我们还可以在回调函数中进行一些处理。
3.进度条的更新
是否带有取消按钮的进度条更新方法其实一样,只是有取消按钮的进度条在取消前应该先判断一下进度条是否被取消。
if app.isCancelcal == 0
waitbar(X/Y,fbar,'Loading your data…');
else
close(fbar);
delete(fbar);
end