Use the same pushbutton in a GUI as Start and Pause button for an animated loop

5 views (last 30 days)
I'm creating a GUI that starts an animation with a pushbutton. I want to:
- start the animation at the first button press - pause the animation at the second button press - resume the animation at the third button press
and so on...
I refresh my plot in the animation is by doing:
for ii:length(X)
set('XData',...,'YData',...)
end
I know how to do this with 2 separate buttons:
function start_button_callback
if get(hObject,'value')
for ii:length(X)
if get(hObject,'value') %checks if changed by pause button
set('XData',...,'YData',...)
....
else
break;
end
end
end
function pause_button_callback
if get(hObject,'Value')
set(handles.start_button,'Value',0);
end
What I want is to use a single pushbutton to start&pause&resume, but I can't get to interrupt the for loop when pushing the start button the second time, even when using a 'handles.counter'. The value of the counter isn't updated at every push button if the loop isn't finished. Any ideas?

Accepted Answer

Oscar
Oscar on 31 Jul 2013
Setting 'Interruptible' to 'off' is enough and works fine. I had understood this property the other way round. Thanks!

More Answers (1)

Jan
Jan on 25 Jul 2013
Did you insert a drawnow to give Matlab the chance to process events?
Did you set the 'Interruptible' property of the button to 'off'?

Categories

Find more on Animation in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!