Verfasst am: 03.11.2014, 12:00
Titel: Edit_textbox über gespeicherte daten belegen
Hallo ich habe folgendes Problem:
Ich habe mehrere edit textboxen in einem GUI welche auch ganz normal funktionieren. Allerdings will ich nun diese Felder nicht manuell über das GUI mit Daten versehen, sondern über ein gespeichertes .mat file. Dafür habe ich folgenden code geschrieben
Code:
% --- Executes on button press in import_gvars. function import_gvars_Callback(hObject, eventdata, handles) % hObject handle to import_gvars (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)
Der Code funktioniert soweit, dass er mir die Textfelder in meinem GUI mit den entsprechenden Daten ergänzt, aber die neuen Daten nicht updated (sprich Matlab benutzt noch "alten" Daten für die darauffolgenden Berechnungen). Wenn ich nun in die Textfelder klicke und mit "enter" bestätige übernimmt er meine Daten. Gibt es eine Möglichkeit die eingelesen Daten gleich aktiv zu setzen, dass der manuelle enter Schritt überflüssig wird?
Der gezeigte Code setzt die String Properties der Text-Felder.
Hier findet aber nicht das statt, was Du "Daten updaten" nennst. Wird das in den Callback Funktionen der Text-Felder durchgeführt? Vielleicht indem etwas in den handles Struct geschrieben wird?
Zitat:
Matlab benutzt noch "alten" Daten für die darauffolgenden Berechnungen
Das Setzen der Strings reicht also offenbar nicht aus, damit das GUI die neuen Daten auch über nimmt. Dann suche in der Funktion, die für das Übernehmen der Daten zuständig ist. Werden dort die Strings ausgelesen oder woher werden die Daten sonst genommen?
Hallo Jan,
Danke ich habe den Fehler gefunden. Ich war die ganze Zeit in dem Irrglauben, dass er die Daten direkt aus den Textfeldern ausliest für jede einzelne Berechnung. Allerdings war der Code so geschrieben, dass er einmal die Werte in ein struct läd (über die entsprechende Callback funktion der edit_textbox) und dann manchmal auf das struct zurückgreift und manchmal die Werte über get() direkt läd. Ich dachte dann wenn ich über set() den String der einzelnen edit_textboxen ändere, dass Matlab automatisch die Callbackfunktion aufruft und dadurch den struct aktualisiert, was allerdings nicht passiert. Hab jetzt noch gesagt er soll am Ende den struct aktualisieren und jetzt passts.
Vielen Dank
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.