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

Probleme Funktionswert an SubGUI zu übergeben

 

PetR
Forum-Newbie

Forum-Newbie


Beiträge: 5
Anmeldedatum: 17.09.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 15.10.2012, 15:13     Titel: Probleme Funktionswert an SubGUI zu übergeben
  Antworten mit Zitat      
Hallo zusammen!

Ich bin relativ neu in Sachen Matlab GUI erstellen und komme momentan an meine Verständnisgrenzen, hoffe ihr könnt mir helfen.
Ich habe eine funktionierende MainGUI mit einigen SubGUIs. Bisher klappt soweit auch alles ohne Probleme.
Nun habe ich ein uimenu eingebaut, dass per Callback meine GUIs von deutsch in englisch übersetzt und umgekehrt. Die Funktion hierfür ist:
Code:
function setLanguage(lang)
h = guidata(gcf);
set(h.tag_main_window,  'Name',   getLabel(lang, 'tag_main_window'));
set(h.language,         'Label',  getLabel(lang, 'language'));
set(h.english,          'Label',  getLabel(lang, 'english'));
set(h.german,           'Label',  getLabel(lang, 'german'));
set(h.text1,            'String', getLabel(lang, 'text1'));
set(h.optionen,         'Title',  getLabel(lang, 'optionen'));
.
.
.


(getLabel ist eine weitere Funktion in ner seperaten m-File und der Verknüpfung für die dazugehörigen Übersetzungen)

War soweit auch nicht dramatisch. Der Callback für die englische Version siehe hier...

Code:
function english_Callback(hObject, eventdata, handles)
% hObject    handle to english (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
setLanguage('en');
aktLang = 'en';
handles.aktLang = aktLang;
guidata(hObject, handles);
setappdata(0,'main_window',handles.aktLang);
set(get(handles.language,'Children'),'Checked','off');
set(gcbo,'Checked','on');


Nun zu meinem Problem: Wenn ich für Dialogboxen in meinen SubGUIs auf die Variable lang mit den möglcihen Zuständen 'en' bzw. 'de' zugreifen will, erkennt er mir diese Variable nicht an.
Wie ihr hier seht, lade ich die handles in der OpeningFunction des SubGUIs:

Code:
% --- Executes just before sp_sim_parameter is made visible.
function sim_parameter_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 sp_sim_parameter (see VARARGIN)

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

handles.aktLang = getappdata(0,'main_window');
% Update handles structure
guidata(hObject, handles);


Wie bekomme ich es hin, dass er mir lang in die SubGUIs übergibt? Also die Zustände 'en' bzw. 'de'? Habe auch schon versucht die GUIdata der MainGUI ins SubGUI zu laden, da gibt er mir den Fehler, dass die Variable den falschen Variablentyp besitzt, auch wenn ich sie wieder zu nem String machen will...

Wo liegt mein Fehler hier? Ich habe schon alle Tips und Lösungen ausm Forum und aus gängigen Tutorials ausprobiert...
Private Nachricht senden Benutzer-Profile anzeigen


PetR
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 5
Anmeldedatum: 17.09.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 17.10.2012, 16:50     Titel:
  Antworten mit Zitat      
Danke Jungs, habs hinbekommen!

Habe mich in setappdata und getappdata selbst verwirrt Rolling Eyes


Code:
function english_Callback(hObject, eventdata, handles)
% hObject    handle to english (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
setLanguage('en');
aktLang = 'en';
handles.aktLang = aktLang;
guidata(hObject, handles);
setappdata(0,'Language',handles.aktLang);
set(get(handles.language,'Children'),'Checked','off');
set(gcbo,'Checked','on');


und in der GUI2:

Code:
lang = getappdata(0,'Language');


zum aufrufen des Wertes...

(...nur falls hier auch mal jemand hängen bleibt Very Happy )
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.