sollen die GUIs gleichberechtigt sein, oder soll eine GUI quasi die Haupt-GUI sein und dann daraus (evtl. nur temporär) eine andere GUI geöffnet werden?
Anders gefragt: wie ist das ganze bei dir grob aufgesetzt?
Grüße,
Harald
gkaraden
Gast
Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
Verfasst am: 25.10.2012, 09:05
Titel:
Hallo Harald,
also eigentlich sollen die gui's gleichberechtigt sein, da sie auch teilweise unabhängig voneinander Funktionen erfüllen bis auf den Fall das man über die erste auch die Objekte der zweiten ansteuern (befüllen) können sollte und danach wieder die zweite ihren vordefinierten Ablauf durchlaufen kann.
Kann es sein das es dieses Edit-Textfeld (handles.undamp_freq_fr) immernoch in der ersten (Programmstart) gui sucht, obwohl es sich in der zweiten (über Programmstart weitergeleitet) befindet ?
Das funktioniert auch ganz gut und ich switche von Callback to_model_Callback aus gui susp_visualisation in Callback calc_freq_Callback der gui tire_property.
Jedoch möchte ich aber nach meiner Berechnung nun auch auf die handles der neuen Callback calc_freq_Callback zugreifen, was er mir auch anzeigt.
Wie in meinem ursprünglichen Beitrag gesagt: du musst dir die Handles-Struktur der anderen GUI mit dem Befehl guidata holen. Das scheint mir hier noch zu fehlen. Ich sehe auch nicht die nötigen setappdata/getappdata-Befehle.
Bitte zusammenhängenden Code posten. Den verbalen Erklärungen zu folgen ist viel mühsamer als sich den Code anzusehen.
Grüße,
Harald
gkaraden
Gast
Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
Verfasst am: 25.10.2012, 15:57
Titel:
Hallo Harald,
also vorab mit getappdata/ setappdata bin ich nicht vertraut und bin mir auch bezgl. des fehlerfreien Nutzens nicht sicher, hier der Code:
Code:
function to_model_Callback(hObject, eventdata, handles) % hObject handle to to_model (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)
Eigentlich soll es nun in der nächsten gui weitergehen:
Code:
function calc_freq_Callback(hObject, eventdata, handles) % hObject handle to calc_freq (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) setappdata(tire_property('calc_freq_callback'),TireStiffnessFront,TireStiffness
Front) setappdata(tire_property('calc_freq_callback'),TireMassFront,TireMassFront)
UndampedFrequencyFront = (sqrt(handles.TireStiffnessFront/handles.TireMassFront)/(2*pi));
UndampedFrequencyFront = sprintf('%1.3f',UndampedFrequencyFront);
set(handles.undamp_freq_fr,'String',num2str(UndampedFrequencyFront))
mehrere Baustellen:
- evalin ist nicht empfohlen. Die Daten sollten in der GUI abgelegt werden.
- guidata ist nicht für diese Form von Aufrufen gedacht. Bitte die Dokumentation und die Beispiele dazu lesen. Ich sehe nur zwei sinnvolle Verwendungsweisen:
1. "Globales" Aktualisieren der Handles-Struktur:
- getappdata sollte mit einem Rückgabeargument aufgerufen werden.
- Bei setappdata muss als erstes ein Handle übergeben werden. Ist
tire_property('calc_freq_callback') wirklich ein Handle??
Vor allem ist mir aber nicht klar, was du mit diesem Code (leider nach wie vor nur Bruchstücke) wirklich machen willst.
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.