WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Edit_textbox über gespeicherte daten belegen

 

Zfish
Forum-Newbie

Forum-Newbie


Beiträge: 6
Anmeldedatum: 13.08.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 03.11.2014, 12:00     Titel: Edit_textbox über gespeicherte daten belegen
  Antworten mit Zitat      
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)

[newGvars.file, newGvars.path filesuccess]=uigetfile('.mat', 'Please select your desired gvars metadata');
if isempty(newGvars.file) || filesuccess==0
    errordlg('No valid file selected.');
    return;
end
loadedGvars=load(strcat(newGvars.path, newGvars.file));
set(handles.edit_loadedGvars, 'String', strcat(newGvars.path, newGvars.file));

% Update relevant gvar values
set(handles.edit_stackmag, 'String', loadedGvars.gvars.stackmag);
set(handles.edit_sliceinterval, 'String', loadedGvars.gvars.sliceinterval);
set(handles.edit_slicemag, 'String', loadedGvars.gvars.slicemag);
set(handles.edit_slicexOffset, 'String', loadedGvars.gvars.slicexoffset);
set(handles.edit_sliceyOffset, 'String', loadedGvars.gvars.sliceyoffset);
set(handles.edit_sliceno, 'String', loadedGvars.gvars.sliceno);

guidata(hObject,handles)

disp(strcat('Successfully loaded and updated gvar values from',{' '}, newGvars.path, newGvars.file));

 


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?

Vielen Dank schon im Vorraus!
Private Nachricht senden Benutzer-Profile anzeigen


Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 03.11.2014, 22:46     Titel: Re: Edit_textbox über gespeicherte daten belegen
  Antworten mit Zitat      
Hallo Zfish,

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?

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
Zfish
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 6
Anmeldedatum: 13.08.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 04.11.2014, 10:13     Titel:
  Antworten mit Zitat      
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
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

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
.





 Impressum  | Nutzungsbedingungen  | Datenschutz | FAQ | goMatlab RSS Button RSS

Hosted by:


Copyright © 2007 - 2024 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks

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.