Verfasst am: 23.04.2021, 10:02
Titel: Callbacks für selbst erstelle Elemente
Moin zusammen,
ich habe mal wieder ein Problem mit dem ich nicht weiter komme. Ich möchte mit CheckBoxen Graphen ein- uns ausblenden. Die Checkboxen erstelle ich so:
Code:
delete(app.TanDelta_CheckBox)
app.TanDelta_CheckBox = [];
for v = 1:app.Spinner.Value
app.TanDelta_CheckBox(v) = uicheckbox('Parent',app.Panel,'Position',[10,20,34,22],'Text',char(9675),'Value',1,'ValueChangedFcn',@(TanDelta_CheckBox,event) TanDelta_CheckBoxValueChanged(app));
end
Das Plotten der Graphen habe ich erstmal so geschrieben. Dies ist erstmal nur ein Beispiel. Im späteren Programm sind x und y Achse Werte von einem Messgerät.
Code:
function Value(app)
v = app.Spinner.Value;
app.TanDeltaPlot(v) = plot(app.UIAxes,(1:10),randn(10,1));
hold(app.UIAxes,'on') end
function TanDelta_CheckBoxValueChanged(app) ifget(app.TanDelta_CheckBox,'Value') == 1
app.TanDeltaPlot.Visible = 'on';
else
app.TanDeltaPlot.Visible = 'off';
end end
Ich bekomme es nicht hin dass die erste CheckBox den ersten Graphen ein- und ausblendent, die zweite CheckBox den zweiten Graphen und so weiter. Kann mir da jemand einen Tipp geben? Muss ich für jede Messung ein CallBack schreiben?
und v dann im Callback auf app.TanDeltaPlot(v) zugreifen.
Grüße,
Harald
_________________
1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Das verstehe ich nicht. Was meinst du mit beiden Stellen?
Mein Callback sieht jetzt so aus:
Code:
function TanDelta_CheckBoxValueChanged(app,v) ifget(app.TanDelta_CheckBox,'Value') == 1
app.TanDeltaPlot(v).Visible = 'on';
else
app.TanDeltaPlot(v).Visible = 'off';
end end
1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
function Value(app)
v = app.Spinner.Value;
app.TanDeltaPlot(v) = plot(app.UIAxes,(1:10),randn(10,1));
end
function TanDelta_CheckBoxValueChanged(app,v) ifget(app.TanDelta_CheckBox(v),'Value') == 1
app.TanDeltaPlot(v).Visible = 'on';
else
app.TanDeltaPlot(v).Visible = 'off';
end end
da kann ich dir mal wieder nur das empfehlen, was ich auch machen würde: debuggen. Insbesondere überprüfen, welche Codeteile wann erreicht werden.
Grüße,
Harald
_________________
1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Einstellungen und Berechtigungen
Du kannst Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen. Du kannst Dateien in diesem Forum posten Du kannst Dateien in diesem Forum herunterladen
MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.