Filter löschen
Filter löschen

How to add replay button?

4 Ansichten (letzte 30 Tage)
Lavanya
Lavanya am 10 Jun. 2022
Kommentiert: Voss am 15 Jun. 2022
Here I am enclosing the .m file, in which I have created a play button i.e auto scroll of the Slider with images and Stop Button as well . But I wanted to create a button to replay button which can play the slider again. Is there any way for this?

Akzeptierte Antwort

Voss
Voss am 10 Jun. 2022
Bearbeitet: Voss am 10 Jun. 2022
Create a new button:
h.replaybutton = uicontrol( ...
'Parent',h.f, ...
'Units','normalized', ...
'Position',[0.8 0 0.1 0.1], ...
'BackgroundColor',[1 1 1], ...
'String','Replay', ...
'Callback',@replaybuttonCallback);
In its callback function, reset the slider Value to the Min, and then execute the Play button callback:
function replaybuttonCallback(~,~)
set(h.slider,'Value',get(h.slider,'Min'));
buttonCallback();
end
That should give you "replay" functionality.
By the way, this
if sliderValue < (get(h.slider, 'Max') - get(h.slider, 'Min'))
should be this
if sliderValue < get(h.slider, 'Max')
Otherwise, the montages stop when N=99 instead of N=100.
Maybe you had it like that at one point but had a problem when the slider's Value was its Max. That happened because the Value was not exactly an integer, which can happen because of floating-point precision or because the user has interacted with the slider directly. In any case, you can avoid that problem by rounding the slider Value when you set it:
set(h.slider, 'Value', round(sliderValue + 1));
and you may want to change the slider's SliderStep to control how the Value changes when the user clicks it.
  4 Kommentare
Lavanya
Lavanya am 15 Jun. 2022
Yes, Can we add buttons for to speed up and slow down the play button?
Voss
Voss am 15 Jun. 2022
Yes, modifying the timer's Period would change the playback rate, but you cannot modify the Period while the timer is running, so you'd have to stop the timer, set the Period, and start the timer again.
For instance, a function like this would increase the timer's Period by 10% every time the function runs (which would decrease the playback rate by 10%):
function slowDownCallback(hObject,eventdata)
was_running = strcmp(h.RandTimer.Running,'on')
if was_running % stop the timer if it is running
stop(h.RandTimer);
end
h.RandTimer.Period = h.RandTimer.Period*1.1; % set the period
if was_running % re-start the timer if it was running
start(h.RandTimer);
end
end

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Mehr zu Migrate GUIDE Apps finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by