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

Variable aus GUI 1 in GUI 2 übernehmen

 

KaiS
Forum-Century

Forum-Century


Beiträge: 102
Anmeldedatum: 19.04.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 20.04.2011, 08:12     Titel: Variable aus GUI 1 in GUI 2 übernehmen
  Antworten mit Zitat      
Hallo zusammen,

ich will eine Variable aus meiner GUI 2 in GUI 1 übernehmen. Dabei will ich GUI 1 starten und u.a. in einem Edit Text (edit1) eine Zahl eintragen, die dann gespeichert werden soll. Dann werden diverse Berechnungen mit dem Wert des edit1 im GUI 2 ausgeführt. Den in GUI 2 resultierenden Wert (in edit17) möchte ich dann wiederum mit pushbutton7 im GUI 1 im edit1 ausgeben und somit den ursprünglichen Wert überschreiben.

Dafür hab ich auch schon gegoogelt und mir durch ein paar Tipps folgenden Code zusammengebastelt:

GUI 1:
Code:
function edit1_Callback(hObject, eventdata, handles)
% hObject    handle to edit1 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)

% Hints: get(hObject,'String') returns contents of edit1 as text
%        str2double(get(hObject,'String')) returns contents of edit1 as a double
mass = str2double(get(hObject,'String'));
a2 = get(hObject,'String');
par = evalin('base','parameter');

assignin('base','parameter',par);
set(handles.text1_2, 'String', (get(handles.edit1,'String')));

% --- Executes during object creation, after setting all properties.
function edit1_CreateFcn(hObject, eventdata, handles)
% hObject    handle to edit1 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    empty - handles not created until after all CreateFcns called

% Hint: edit controls usually have a white background on Windows.
%       See ISPC and COMPUTER.
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
    set(hObject,'BackgroundColor','white');
end
par = evalin('base','parameter');
set(hObject,'String',par.vehicle.mass);


GUI 2:
Code:
function edit17_Callback(hObject, eventdata, handles)
% hObject    handle to edit17 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)

par = evalin('base','parameter');
set(hObject,'String',par.vehicle.mass);

guidata(hObject, handles);
% Hints: get(hObject,'String') returns contents of edit17 as text
%        str2double(get(hObject,'String')) returns contents of edit17 as a double


% --- Executes during object creation, after setting all properties.
function edit17_CreateFcn(hObject, eventdata, handles)
% hObject    handle to edit17 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    empty - handles not created until after all CreateFcns called

% Hint: edit controls usually have a white background on Windows.
%       See ISPC and COMPUTER.
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
    set(hObject,'BackgroundColor','white');
end

function pushbutton7_Callback(hObject, eventdata, handles)
% hObject    handle to pushbutton7 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
par = evalin('base','parameter');
total_weight = A+B+C;
par.vehicle.mass = total_weight;
set(hObject,'String',par.vehicle.mass);

% get the main_gui handle (access to the gui)
mainGUIhandle = GUI1;      
% get the data from the gui (all handles inside gui_main)
mainGUIdata  = guidata(mainGUIhandle);
 
% change main gui strings
set(mainGUIdata.edit1, 'String', get(handles.edit17, 'String'));
 
% save changed data back into main_gui
%this line updates the data of the Main Gui
guidata(GUI1, mainGUIdata);

% close this gui
close(GUI2);
GUI1;

[Die Variablen A, B und C sind definiert, ich habs nur nicht hier noch eingefügt].

Nun mein Problem:
Edit1 bekommt beim Aufruf von GUI1 einen Standardwert. Bevor ich den pushbutton7-Code integriert habe, konnte ich im edit1 diesen Wert allerdings beliebig ändern. Nachdem ich pushbutton7 eingeführt habe, kann ich im edit1 einen x-beliebigen Wert reinschreiben, ohne dass die Variable im Wert geändert wird.
Die pushbutton-Prozedur funktioniert aber eigentlich, d.h. der Wert aus GUI2 wird ins edit1 in GUI1 übernommen.

Weiß vllt jmd, woran es liegen könnte, dass der Variablenwert im edit1 immer auf Standardwert bleibt, und wie ich das Problem behebe?

Vielen Dank!

LG
Kai
Private Nachricht senden Benutzer-Profile anzeigen


Marco H.
Forum-Guru

Forum-Guru


Beiträge: 404
Anmeldedatum: 12.11.10
Wohnort: Dortmund
Version: 2010a/2012b
     Beitrag Verfasst am: 21.04.2011, 22:44     Titel:
  Antworten mit Zitat      
Hey,

so ich habe wegen der momentanen Nachfrage mal eine Tuto geschrieben -> http://www.gomatlab.de/variablen-au.....i-uebertragen-t17665.html

Vermeide doch bitte das Laden und Speichern aus dem Matlabworkspace. Das machts nur unübersichtlicher und schwieriger nachzuvollziehen...

MfG Marco
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 - 2025 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.