How to assign a callback to a gui element created at runtime

2 vues (au cours des 30 derniers jours)
Ilario Triscari
Ilario Triscari le 27 Août 2019
Commenté : Ilario Triscari le 28 Août 2019
Hi,
In AppDesigner I created an app that creates a slider at runtime:
Tt_end_slider = uislider();
Tt_end_slider.Position = app.emptySlider_2.Position;
Tt_end_slider.Tag='t_end';
Tt_end_slider.UserData=i;
Tt_end_slider.ValueChangedFcn = @(source, event) app.osc_prev_slider_ValueChanged ;
The Callback is defined as follows
% Callback function
function osc_prev_slider_ValueChanged(app, event)
value = event.Source.Value;
[..]
end
Using the slider, I get this error:
Not enough input arguments.
Error in tutorialApp/osc_prev_slider_ValueChanged (line 575)
value = event.Source.Value;
Error in tutorialApp>@(source,event)app.osc_prev_slider_ValueChanged (line 325)
Tt_start_slider(i).ValueChangedFcn = @(source,event)app.osc_prev_slider_ValueChanged ;
I couldn't find how to correctly pass the requested argument to the callback ( I tried with @(source,event) looking at the callbacks assigned using the graphic interface)

Réponse acceptée

Cris LaPierre
Cris LaPierre le 27 Août 2019
Modifié(e) : Cris LaPierre le 27 Août 2019
You're close. I see two errors.
1. "Not enough input arguments" is because you are not passing 2 inputs to your callback function. App Designer automatically passes app, but you need to pass in something for event. Update your ValueChangedFcn to this
Tt_end_slider.ValueChangedFcn = @(source, event) app.osc_prev_slider_ValueChanged(Tt_end_slider);
2. Inside your callback function, you are using incorrect dot notation to get the value of the slider. Remove ".Source".
value = event.Value;
  1 commentaire
Ilario Triscari
Ilario Triscari le 28 Août 2019
Thank you, now it works. However I did not understand the difference between arguments in the first parenthesis and arguments in the second one.

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Develop Apps Using App Designer dans Help Center et File Exchange

Produits


Version

R2018b

Community Treasure Hunt

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

Start Hunting!

Translated by