How to assign a callback to a gui element created at runtime
2 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
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)
0 commentaires
Réponse acceptée
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;
Plus de réponses (0)
Voir également
Catégories
En savoir plus sur Develop Apps Using App Designer dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!