编写程序遇到的问题,中途关闭进度条会报错,加入这个取消代码就好了
%第一种
hWaitBar = waitbar(0, '请等待...', 'Name', '进度条', 'CreateCancelBtn' ,'setappdata(gcbf, ''isCanceled'', true)');
hCancelButton = findall(hWaitBar, 'style', 'pushbutton');
set(hCancelButton, 'string', '取消', 'fontsize', 8);
setappdata(hWaitBar, 'isCanceled', false);
for i = 1 : 100
waitbar(i / 100, hWaitBar, ['更新' num2str(i) '%']);
pause(0.1);
if getappdata(hWaitBar, 'isCanceled')
return;
end
end
pause(0.1);
delete(hWaitBar);
%第二种
isCanceled = false;%表征是否按下了取消按钮
hWaitbar=waitbar(0,'请等待…','Name','进度条','CreateCancelBtn',@Cancelcallback);%创建进度为0的进度条
btnCancel=findall(hWaitbar,'style','pushbutton');%查找取消按钮
set(btnCancel,'string','取消','fontsize',10);
for i=1:100
waitbar(i/100,hWaitbar,['进度完成',num2str(i),'%']);
pause(0.1)
if isCanceled%如果按下了取消按钮,跳出循环
return;
end
end
if ishandle(hWaitbar)
delete(hWaitbar)
clear hWaitbar
end
function Cancelcallback(~,~)
isCanceled = true;
end
end
结果图
参考原文:https://www.ilovematlab.cn/thread-244814-1-1.html
标签:end,进度条,hWaitBar,isCanceled,MATLAB,GUI,100,hWaitbar
来源: https://blog.csdn.net/qq_46877697/article/details/110383450