Verfasst am: 07.09.2009, 21:46
Titel: Handles scope in GUI
Hallo,
ich stehe gerade vor einem Problem bei einem mit guide geschriebenen GUI, bei dem ich auf dem Schlauch stehe:
Als Beispiel ein kleines Programm zur Demonstration. Es besteht aus 2 Pushbuttons samt Callbacks und einer Funktion "someFcn", die vom Callback von pushbutton_1 aufgerufen wird. In "someFcn" wird die Variable "dug" gesetzt und in den "handles" abgelegt.
Code:
% Auszug aus dem m-Code von guide % function ts, ts_Opening, ts_OutputFcn sind unverändert, wie sie von guide erstellt werden
Das Problem ist folgendes: Im Callback von "pushbutton_1" enthält "handles" noch die Varibale "dug" mit Wert 2. Wenn ich aber 2pushbutton_22 klicke, enthält "handles" "dug" überhaupt nicht mehr (resultiert in einem Fehler).
Da ich "dug" an die "handels" übergebe, dachte ich, es sollte in allen Callbacks verfügbar sein.
Kann mir jemand von euch sagen, was hier falsch läuft bzw. was ich übersehen habe?
in der Funktion pushbutton1_Callback erzeugst Du handles.click, rufst dann someFcn auf (dabei wird handles inkl. .click übergeben). In someFcn fügst Du noch zusätzlich dug hinzu und speicherst guidata. Danach gehts in pushbutton1_Callback weiter. Dort fehlt das Feld dug in handles, da Du die Daten nicht neu von guidata geladen hast. Dann schreibst Du guidata wieder neu (in der Variante ohne dug).
Wenn Du die Zeile
danke für die Antwort! Ich sehe jetzt meinen Denkfehler. Ich dachte, dass die handles aus "someFcn" automatisch an den callback zurückgegeben werden - was ja offensichtlich nicht der Fall ist.
Wenn ich "click" nach dem Aufruf von "someFcn" setzen will, muss ich also schreiben:
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.