problem with waitbar cancel button

All,
I'm encountering a little problem with a cancel button on a waitbar. I can get the Matlab example in the help file to work perfectly, although for some reason when I try it in my code, it does not seem to acknowledge the callback for the cancel button. Heres what I have:
hWaitBar = waitbar(0, '',...
'Name', 'LOADING IMAGES - PLEASE WAIT...',...
'CreateCancelBtn','setappdata(gcbf,''Canceling'',1)');
setappdata(hWaitBar,'Canceling',0)
for i=3:size(filelist,1)
%do stuff here
getappdata(hWaitBar,'Canceling')
% Check for Cancel button press
ch = getappdata(hWaitBar, 'Canceling')
if getappdata(hWaitBar,'Canceling') ==1
break
end
waitbar(i/size(filelist,1),hWaitBar)
end
delete(hWaitBar)
The check command 'getappdata(hWaitBar,'Canceling')' inside the loop never returns the value of 1, which it should do from the callback defined in hWaitBar.
The only difference I can think of between the matlab example and my code is that all my above code is located in a set if-else loops (4 deep). Would this be responsible?
Thanks
Jim

답변 (2개)

Walter Roberson
Walter Roberson 2012년 10월 5일

0 개 추천

Try adding a drawnow() call inside the loop, so that the callback of canceling the waitbar will have a chance to run.

댓글 수: 1

Jim O'Doherty
Jim O'Doherty 2012년 10월 9일
Thanks for the answer - no luck with the drawnow() command unfortunately. I think the issue is that when I actually press the cancel button, it doesn't change the "Canceling" variable to 1, and hence the callback doesn't run.

댓글을 달려면 로그인하십시오.

Alexander Kosenkov
Alexander Kosenkov 2016년 5월 30일

0 개 추천

The currently running function must be started from a button/menu, where Interruptible is set to 'on'. Otherwise, currently running calculation (the one that opened the progress bar) can not be interrupted even to set 'Canceling' to 1.

댓글 수: 1

Ali Yar Khan
Ali Yar Khan 2020년 1월 31일
can you share the code how can we set it on from the callee function ?

댓글을 달려면 로그인하십시오.

카테고리

도움말 센터File Exchange에서 App Building에 대해 자세히 알아보기

질문:

2012년 10월 5일

댓글:

2020년 1월 31일

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by