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 件のコメント

Dishant Arora
Dishant Arora 2013 年 7 月 25 日
Using toggle button instead of a push button would be better in this case.
Oscar
Oscar 2013 年 7 月 31 日
You're right, it's more appropriate for my purpose, thanks!

サインインしてコメントする。

 採用された回答

Oscar
Oscar 2013 年 7 月 31 日

0 投票

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

その他の回答 (1 件)

Jan
Jan 2013 年 7 月 25 日

4 投票

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

カテゴリ

ヘルプ センター および File ExchangeAnimation についてさらに検索

質問済み:

2013 年 7 月 25 日

Community Treasure Hunt

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

Start Hunting!

Translated by