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

Parameter an GUI übergeben

 

Krokodilmobil

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 17.09.2012, 20:18     Titel: Parameter an GUI übergeben
  Antworten mit Zitat      
Hallo,
vermutlich eine ganz einfache Frage, habe aber keine funktionierende Antwort im Netz gefunden.

Aus einer GUI wird eine UnterGUI aufgerufen, dieser soll ein Paramter übergeben werden, welcher in allen Callbacks genutzt wird. Wie geht das möglichst einfach. Ich hoffe es gibt eine variante, ohne dies vorher in varargin zu speicher und daraus abzurufen. Es soll so, wie in einer normalen Funktion funktionieren.

Vielen Dank im Voraus für eure Hilfe.

Krokodilmobil


Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 18.09.2012, 12:46     Titel: Re: Parameter an GUI übergeben
  Antworten mit Zitat      
Hallo Krokodilmobil,

Ich verstehe das Problem noch nicht. Auch "normale" Funktionen können ihre Inputs per VARARGIN übernehmen. VARARGIN ist einfach eine Methode, bei der man sich nicht auf eine bestimmte Anzahl von Inputs festlegen muss.

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
Krokodilmobil

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 18.09.2012, 13:31     Titel:
  Antworten mit Zitat      
Ich möchte varargin nicht benutzen

in meinem Pautprogramm schreibe ich

zn='Zone3';
Dekompressionszone(zn)

um die GUI Dekompressionszone zu öffnen.

Was muss ich in der GUI Dekompressionszone einstellen, sodass ich zn in der gesamten GUI nutzen kann? Ich bin mir nicht sicher, ob zn dann eine globale Variable füe diese Funktion ist.

Gruß
Krokodilmobil
 
mr90

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 18.10.2012, 10:02     Titel:
  Antworten mit Zitat      
Die einfachst variante liefert setappdata.

Ich würde das ganze folgendermaßen lösen
Code:
%Code für mainGUI
setappdata(0, 'MainGUI', gcf) %speichert die "Adresse" der MainGUI in die Base (0)
setappdata(gcf, 'meineVariable', irgendeinWert)%speichert in meine MainGUI meineVariable die mit irgendeinWert beschrieben wird.
 


Code:
%Code für SubGUI (am besten in die openingfcn)

MainGUI = getappdata(0, 'MainGUI); %holt die Adresse der MainGUI aus der Base

meineVariable = getappdata(MainGUI, 'meineVariable'); %holt den Wert von meineVariable

 


Wichtig noch zu beachten!!!
Wenn du die GUIs schließt werden die Daten die du mit setappdata geschrieben hast automatisch vernichtet. AUßER diejenigen die in der Base stehen! Daher man muss die Daten am Ende aus der Base löschen. Es gibt ein Callback das ausgeführt wird wenn die GUI geschlossen wird. Mit rmappdata kannst du in diesem Callback die Daten am Ende entfernen!

Hoffe das hilft!

mr90
 
mr90

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 18.10.2012, 10:05     Titel:
  Antworten mit Zitat      
Was ich noch vergessen habe.

Um eine Variable in allen Callbacks nutzen zu könne musst du sie als handle abspeichern.

[code]
handles.meinevariable = irgendwas;
guidata(hObject, handles) %Aufpassen guidata speichert das neue handle zu den restlichen. Wenn der Befehl vergessen wird kannst du in anderen Callbacks nicht darauf zu greifen. Außerdem ist es recht mühsam diesen Fehler zu finden.
 
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.