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

Gui-Datenaustausch

 

AnnaMaria
Forum-Newbie

Forum-Newbie


Beiträge: 6
Anmeldedatum: 09.07.15
Wohnort: Stuttgart
Version: ---
     Beitrag Verfasst am: 09.07.2015, 16:06     Titel: Gui-Datenaustausch
  Antworten mit Zitat      
hallo liebes forum,

ich habe vor wenigen tagen das schreiben meiner masterarbeit begonnen. dafür benötige ich matlab. ich möchte mit guis arbeiten, um ein programm zu schreiben.
das programm soll aus ganz vielen unterguis bestehen, die über eine hauptgui aufgerufen werden. in den unterguis möchte ich meine daten für die jeweiligen masken eingeben. insgesamt soll es 4 grundelemente geben, die einzelne guimasken haben sollen, auf denen man ihre parameter manuell eingeben kann. je nach dem wie viele der grundelemente ich in der hauptgui ausgewählt habe (mehrfache Auswahl eines Elementes ist möglich), destso mehr guis vom jeweiligen ausgewählten grundelementtyp sollen entstehen. nachdem ich dann alle eingaben/parameter in den 'unterguis' (guis der grundelemente) eingegeben habe, möchte ich diese zum einen zusammengefasst auf der hauptgui anzeigen lassen und zum anderen speichern können, so dass ich beim erneuten start meiner hauptgui gleich alle daten der unterguis, die ich zuvor gespeichert habe, sofort wieder eingetragen habe. hat jemand eine idee, ob soetwas überhaupt funktioniert. und wenn ja, wie ich das ganze programmieren könnte?

liebe grüße
eure anna
Private Nachricht senden Benutzer-Profile anzeigen


AnnaMaria
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 6
Anmeldedatum: 09.07.15
Wohnort: Stuttgart
Version: ---
     Beitrag Verfasst am: 10.07.2015, 12:32     Titel:
  Antworten mit Zitat      
brauche dringend eure hilfe, komme nicht weiter Crying or Very sad
Private Nachricht senden Benutzer-Profile anzeigen
 
Winkow
Moderator

Moderator



Beiträge: 3.842
Anmeldedatum: 04.11.11
Wohnort: Dresden
Version: R2014a 2015a
     Beitrag Verfasst am: 10.07.2015, 12:35     Titel:
  Antworten mit Zitat      
hallo.
ich muss dabei an setappdata und getappdata
denken.
grüße
_________________

richtig Fragen
Private Nachricht senden Benutzer-Profile anzeigen
 
AnnaMaria
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 6
Anmeldedatum: 09.07.15
Wohnort: Stuttgart
Version: ---
     Beitrag Verfasst am: 10.07.2015, 13:02     Titel:
  Antworten mit Zitat      
Über setappdata und getappdata habe ich das ganze jetzt gelöst. Allerdings mehr oder weniger durch zufall. ich verstehe den befehl nicht wirklich. ich habe eine hauptgui gebaut mit folgendem code:
Code:
function HauptGUI_OpeningFcn(hObject, eventdata, handles, varargin)
% This function has no output args, see OutputFcn.
% hObject    handle to figure
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
% varargin   command line arguments to HauptGUI (see VARARGIN)

% Choose default command line output for HauptGUI
handles.output = hObject;

textunter = getappdata(0,'unter');
set(handles.text_hauptgui, 'String',textunter);

% Update handles structure
guidata(hObject, handles);

% UIWAIT makes HauptGUI wait for user response (see UIRESUME)
% uiwait(handles.figure1);


% --- Outputs from this function are returned to the command line.
function varargout = HauptGUI_OutputFcn(hObject, eventdata, handles)
% varargout  cell array for returning output args (see VARARGOUT);
% hObject    handle to figure
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)

% Get default command line output from handles structure
varargout{1} = handles.output;


% --- Executes on button press in pb_dateninuntergui.
function pb_dateninuntergui_Callback(hObject, eventdata, handles)
% hObject    handle to pb_dateninuntergui (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
text = get(handles.edit_hauptgui, 'String');
setappdata(0,'haupt',text);


function edit_hauptgui_Callback(hObject, eventdata, handles)
% hObject    handle to edit_hauptgui (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 edit_hauptgui as text
%        str2double(get(hObject,'String')) returns contents of edit_hauptgui as a double


% --- Executes during object creation, after setting all properties.
function edit_hauptgui_CreateFcn(hObject, eventdata, handles)
% hObject    handle to edit_hauptgui (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


% --- Executes on button press in pb_untergui.
function pb_untergui_Callback(hObject, eventdata, handles)
% hObject    handle to pb_untergui (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
UnterGUI
 


hier habe ich in der openicfcn folgenden code ergänzt:
Code:
textunter = getappdata(0,'unter');
set(handles.text_hauptgui, 'String',textunter);


und im ersten button, der zur übergabe an die untergui dient folgenden code:
Code:
text = get(handles.edit_hauptgui, 'String');
setappdata(0,'haupt',text);


der button, mit dem man dann in die untergui gelangt ist wie folgt belegt:
Code:
function pb_untergui_Callback(hObject, eventdata, handles)
% hObject    handle to pb_untergui (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
UnterGUI



Die untergui habe ich mit folgendem code geschrieben:
Code:
function UnterGUI_OpeningFcn(hObject, eventdata, handles, varargin)
% This function has no output args, see OutputFcn.
% hObject    handle to figure
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
% varargin   command line arguments to UnterGUI (see VARARGIN)

% Choose default command line output for UnterGUI
handles.output = hObject;

texthaupt = getappdata(0,'haupt');
set(handles.text_untergui, 'String',texthaupt);

% Update handles structure
guidata(hObject, handles);

% UIWAIT makes UnterGUI wait for user response (see UIRESUME)
% uiwait(handles.figure1);


% --- Outputs from this function are returned to the command line.
function varargout = UnterGUI_OutputFcn(hObject, eventdata, handles)
% varargout  cell array for returning output args (see VARARGOUT);
% hObject    handle to figure
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)

% Get default command line output from handles structure
varargout{1} = handles.output;


% --- Executes on button press in pb_dateninhauptgui.
function pb_dateninhauptgui_Callback(hObject, eventdata, handles)
% hObject    handle to pb_dateninhauptgui (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
text = get(handles.edit_untergui, 'String');
setappdata(0,'unter',text);


function edit_untergui_Callback(hObject, eventdata, handles)
% hObject    handle to edit_untergui (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 edit_untergui as text
%        str2double(get(hObject,'String')) returns contents of edit_untergui as a double


% --- Executes during object creation, after setting all properties.
function edit_untergui_CreateFcn(hObject, eventdata, handles)
% hObject    handle to edit_untergui (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


% --- Executes on button press in pb_back.
function pb_back_Callback(hObject, eventdata, handles)
% hObject    handle to pb_back (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
HauptGUI
 


Auch hier habe ich die openingfcn mit folgendem Code ergänzt:
Code:
texthaupt = getappdata(0,'haupt');
set(handles.text_untergui, 'String',texthaupt);


und auch hier habe ich im ersten button, der zur übergabe an die hauptgui dient folgenden code:
Code:
text = get(handles.edit_untergui, 'String');
setappdata(0,'unter',text);


der button, der zum zurückkommen in die hauptgui dient ist wie folgt belegt:
Code:
function pb_back_Callback(hObject, eventdata, handles)
% hObject    handle to pb_back (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
HauptGUI



Mein Problem an der ganzen sache ist, dass ich nicht verstehe, wieso ich z.b. bei
getappdata(0,'haupt') schreiben muss.
Also ich versteh das so, dass das 'haupt' den namen des objekts angibt, aus dem ich die daten haben möchte. aber was gibt mir die 0 an? und wieso funktioniert das ganze nicht mehr, wenn ich alle nullen in setappdata und getappdata durch einen beliebig anderen namen, meintwegen test, ersetze. sprich wieso ginge nicht auch getappdata(test,'haupt')?

das kapiere ich einfach nicht. also die datenübergabe ist wenn man so will mehr oder weniger zufällig entstanden. Kann mir jemand helfen?
Private Nachricht senden Benutzer-Profile anzeigen
 
AnnaMaria
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 6
Anmeldedatum: 09.07.15
Wohnort: Stuttgart
Version: ---
     Beitrag Verfasst am: 13.07.2015, 11:00     Titel:
  Antworten mit Zitat      
hat denn keine eine idee?
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.495
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 13.07.2015, 11:58     Titel:
  Antworten mit Zitat      
Hallo,

versuche dich mal in den Leser hineinzuversetzen. Was soll man denn mit deinem ganzen Code machen? Am Ende kommt dann eine verhältnismäßig kleine Frage, für die man den Code eigentlich gar nicht ansehen muss.

Zitat:
Mein Problem an der ganzen sache ist, dass ich nicht verstehe, wieso ich z.b. bei getappdata(0,'haupt') schreiben muss.

An sich sollte die Doku das erklären. Das erste Argument ist das Graphik-Objekt, in dem die Daten hinterlegt sind. 0 steht für die MATLAB-Sitzung. Um Konflikte zu vermeiden und dafür zu sorgen, dass die Daten nach Beenden der GUI auch freigegeben werden, würde ich nicht 0 verwenden, sondern den Verweis auf die GUI. Wenn es nicht umbenannt wurde, dann etwas in der Form
Code:
getappdata(handles.figure1,'haupt')


Grüße,
Harald
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.