Verfasst am: 02.07.2012, 15:33
Titel: Linie mit Callbackfunktion zeichnen
Hallo zusammen
Ich habe folgendes Problem: Ich habe ein Bild und daneben 4 Checkboxes. Sobald eine Checkbox angeklickt wird, soll auf dem Bild die dazugehörige Linie erscheinen. Dies wollte ich einfach über einen Stringbefehl im Callback realisiren. Soweit auch kein Problem. Das Ganze sieht so aus
Mein Problem ist, dass ich bei dieser Linie gerne die Eigenschaften spezifizieren würde (Farbe, Linienbreite etc.) aber sobald ich den Befehl entsprechend erweitere...
Hallo
na ja, du übergibst den kompletten Callback als String-Ausdruck an UICONTROL, also muss du aufpassen bei Hochkommas, an der Stelle wo bereits Kommas im Befehl waren, müssen diese durch Doppelte ersetzt werden.
Verfasst am: 02.07.2012, 16:12
Titel: Re: Linie mit Callbackfunktion zeichnen
Hallo BlackRose,
Ein String-callback hat die Einschränkung, dass er im Base-Workspace ausgeführt wird. Das ist immer tückisch. So wird die Linie z.B. in das akitve AXES-Objekt gezeichnet. Wenn Du aber mehrere AXES-Objekte in irgendwelchen Fenstern hast, kann das an unerwarteten Stellen passieren.
Es ist deshalb sinnvoll den Befehl in eine Funktion zu schreiben und den FunctionHandle in den callback zu schreiben. Als Parameter könnte der handle des AXES-Objektes verwendet werden, so dass "line(x, y, 'Parent', AxesH)" garantiert ins richtige Objekt zeichnet.
Gruß, Jan
BlackRose
Gast
Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
Verfasst am: 02.07.2012, 17:12
Titel:
Vielen Dank euch beiden! Ich werde es mal mit den doppelten Hochkommas probieren (wieder was gelernt!) und sonst schreibe ich dann halt doch eine Funktion (wollte ich eigentlich vermeiden aber wird halt eleganter)
Kann ich die Callback-Funktion im gleichen File schreiben oder muss ich dafür ein extra m.-File erstellen (hab bisher überhaupt keine Erfahrung mit GUIs und ähnlichem in Matlab )?
Liebe Grüsse,
BlackRose
Kann ich die Callback-Funktion im gleichen File schreiben oder muss ich dafür ein extra m.-File erstellen
Das ist beides möglich. Wenn Du die Funktion nur aus dem GUI heraus verwendest, ist sie innerhalb des M-Files gut aufgehoben. Wenn Du sie auch von außen, von einem anderen Programm benötigst, ist sie als eigenständige Funktion geschickter.
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.