problem with waitbar cancel button

조회 수: 2 (최근 30일)
Jim O'Doherty
Jim O'Doherty 2012년 10월 5일
댓글: Ali Yar Khan 2020년 1월 31일
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일
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일
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 ?

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

카테고리

Help CenterFile Exchange에서 Dialog Boxes에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by