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

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?

2 comentarios

Using toggle button instead of a push button would be better in this case.
You're right, it's more appropriate for my purpose, thanks!

Iniciar sesión para comentar.

 Respuesta aceptada

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

Más respuestas (1)

Jan
Jan el 25 de Jul. de 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'?

Categorías

Más información sobre Animation en Centro de ayuda y File Exchange.

Etiquetas

Preguntada:

el 25 de Jul. de 2013

Community Treasure Hunt

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

Start Hunting!

Translated by