Verfasst am: 08.09.2008, 09:26
Titel: Eingaben aus GUI speichern und übergeben über Outputfunkti
Hallo,
ich möchte die eingegebenen Daten aus einem GUI übergeben. Diese Daten werden aber nicht gespeichert - lediglich die Voreinstellungen aus der Opening-Function. Nun habe ich versucht, diese Einstellungen mit guidata zu speichern und über uiwait die Eingabedaten des Benutzers zu speichern, um diese so an die Output-Funktion übergeben zu können. Das funktioniert aber leider auch nicht.
Kann mir jemand helfen, wie beispielsweise die Eingabe eines Namens gespeichert und an das GUI, in dem es aufgerufen wird, übergeben werden kann?
... hab in dem Forum dazu bisher nichts gefunden
Vielen Dank
ja, ich würde die datei mit rückgabeparameter aufrufen. mein problem ist allerdings eher, dass ich zunächst die voreinstellung in der opening-funktion lade, das speichere (damit es erscheint), dann das gui ausführen lasse, der benutzer eingaben machen soll. diese werden aber trotz guidata, uiwait und uiresume nicht gespeichert! im anhang befindet sich der quellcode (stark gekürzt).. hängt das mit der close-funktion zusammen?
würde mich sehr freuen, wenn das klappen würde ...
also, ich habe die debug-funktion benutzt. derzufolge sind alle daten (also mit guidata gespeicherte benutzereingaben) nach uiresume noch vorhanden.
dann springt die funktion ja zurück in die opening-funktion (wenn dort noch befehle, wzb disp('hier'), hinter uiwait auftauchen) und schliesslich in die output-funktion. aber schon bei der opening-funktion sind nur noch die voreinstellungen (VOR dem uiwait, aber nicht die benutzereingaben) vorhanden .
hilfe! wohin gehen die daten verloren? auch mit einem weiteren guidata(hObject, handles) hinter uiresume ist nichts zu retten.
entschuldigung. Also, ich möchte das gui in einem anderen aufrufen (etwa so: benutzereingabedaten=aufruf_gui). Ich hab aber nun das Problem, dass die Benutzerdaten nicht zurückgegeben werden.
Und zwar schon innerhalb des aufruf_gui's, wo sie meines Erachtens nach uiwait an die Opening- und dann an die Output-Funktion übergeben werden MÜSSTEN, damit sie so dann weiter an das andere gui gegeben werden könnten. Ich definiere also Voreinstellungen in der Opening-Funktion, speichere sie mit guidata, lasse dann über uiwait den Benutzer Eingaben machen (auch mit guidata gespeichert), die dann mit uiresume (Eingabedaten auch nach uiresume noch vorhanden) meiner Meinung nach über die Opening-Funktion (hier sind sie weg!) wieder zurückgegeben werden müssten.
Ist das so verständlich oder beschreibe ich das etwas zu kompliziert?
Vielen Dank für die Mühe!
function var_value1_CreateFcn(hObject, eventdata, handles) ifispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white');
end
function var_value2_Callback(hObject, eventdata, handles)
a = get(handles.var_value2,'String');
handles.output.total2 = a+10
function var_value2_CreateFcn(hObject, eventdata, handles) ifispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white');
end
function Closesave_Callback(hObject, eventdata, handles) uiresume(hObject)
uiresume kannst du auch nur handles vom Typ figure übergeben. Ich denke dein Closesave_Callback ist von einem uicontrol oder? Du kannst auch uiresume oder uiresume(gcf) benutzen bzw. uiresume(handles.DeinFigureTag)... Dann sollte es funktionieren...
ich habe ein identisches Problem und checke es leider nicht. Bei mir geht es um zwei GUI in dem ich in der Haupt GUI's die Werte in der opening_fcn vorbelege.
Code:
function Gebrauchstauglichkeit_OpeningFcn(hObject, eventdata, handles, varargin) % ------- % default Werte hier als Beispiel ein popup_menu set(handles.Berechnungsverfahren_Gebrauchstauglichkeit,'String',{'Hamm' , 'EC 5'});
set(handles.Berechnungsverfahren_Gebrauchstauglichkeit,'Value',1);
% Choose default command line output for Gebrauchstauglichkeit
handles.output = hObject;
anschließend gehe ich das GUI durch und wenn jemand ein eigenes Bauteil eingeben will, möchte ich ein GUI Eingabefenster öffnen. Dies mache ich mit hiermit
Als Fehlermeldung bekomme ich immer wieder einen Befehl:
Code:
Error using set
Value must be a handle
Error in Gebrauchstauglichkeit>Gebrauchstauglichkeit_OpeningFcn (line69) set(handles.Berechnungsverfahren_Gebrauchstauglichkeit,'String',{'Hamm' , 'EC 5'});
Was mir sagt das im HauptGUI die opening_fcn nochmals durchlaufen wird. Meine Vermutung liegt darin das ich einen Fehler mache mit uiwait und uiresume und die Bezeichnung von
falsch ist. Ich habe es schon mit uiresume(gcbf) und dergleichen versucht aber leider immer irgendeinen Fehler bekommen. Auch das versetzten von uiwait in den Code der ersten GUI hat nichts gebracht. Leider kann ich darauf nicht verzichten und derzeit sehe ich keinen Weg es zu umgehen.
Nerv mich gerade unglaublich daran das ich nicht checke wo der Fehler liegt.... Mad
Ich hoffe ich habe mein Problem verständlich dargestellt.
Viele Grüße
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.