|
|
Parameter von einer GUI zur anderen |
|
balli1187 |
Forum-Anfänger
|
|
Beiträge: 26
|
|
|
|
Anmeldedatum: 15.06.12
|
|
|
|
Wohnort: Magdeburg
|
|
|
|
Version: 2007b
|
|
|
|
|
|
Verfasst am: 25.04.2014, 13:48
Titel: Parameter von einer GUI zur anderen
|
|
Hallo,
ich habe eine GUI mittels GUIDE erstellt. Darin befindet sich ein Button, dessen Callback ein neues Fenster aufrufen soll. soweit bin ich gekommen... Das zweite Fenster öffnet sich und dortige (GUI-)Funktionen werden ausgeführt.
nun möchte ich, dass beide fenster mit einander interagieren. Konkret möchte ich bei Aufruf der Sub-Gui drei Parameter von der Main-Gui übernehmen und die Werte in einem Edit-Feld anzeigen. Wenn die SUb-Gui geschlossen wird, sollen ebenfalls drei Werte wieder zurück übergeben werden.
Den Aufruf aus der Main-Gui würde ich folgendermaßen gestallten
Stimmt das soweit?
An welcher stelle in der Sub-Gui muss ich meine Parameter "abholen"? Ich habe in dem sub_gui.m-File ja auch handles und hObject aber das sind doch sicher nicht die selben, wie in meiner Main-Gui oder?
MfG, Stephan
|
|
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.495
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 25.04.2014, 14:27
Titel:
|
|
Hallo,
para_4 bis para_6 können so übergeben werden und werden dann in der OpeningFcn in "varargin" zur Verfügung stehen.
para_1 bis para_3 müssen in der Output Function zurückgegeben werden.
Allerdings muss sichergestellt werden, dass die Output Function nicht zu früh ausgeführt wird (uiwait in der OpeningFcn).
Sobald die Parameter zurückzugeben werden sollen, muss ein entsprechendes uiresume ausgeführt werden. Das kann z.B. im Callback eines Pushbuttons sein.
Grüße,
Harald
|
|
|
balli1187 |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 26
|
|
|
|
Anmeldedatum: 15.06.12
|
|
|
|
Wohnort: Magdeburg
|
|
|
|
Version: 2007b
|
|
|
|
|
|
Verfasst am: 25.04.2014, 17:26
Titel:
|
|
|
|
|
Hallo Harald und danke für deine Antwort!
Ich brauch aber noch ein paar Zusatzinfos für Newbees
Harald hat Folgendes geschrieben: |
para_4 bis para_6 können so übergeben werden und werden dann in der OpeningFcn in "varargin" zur Verfügung stehen |
muss ich in der Opening function was verändern, in der definition oder dergleichen, oder werden para_4...6 in die handles-Struktur eingepflegt?
Harald hat Folgendes geschrieben: |
para_1 bis para_3 müssen in der Output Function zurückgegeben werden.
Allerdings muss sichergestellt werden, dass die Output Function nicht zu früh ausgeführt wird (uiwait in der OpeningFcn).
Sobald die Parameter zurückzugeben werden sollen, muss ein entsprechendes uiresume ausgeführt werden. Das kann z.B. im Callback eines Pushbuttons sein. |
Oha... Da ist ja noch mehr Neuland.... Werd ich wohl noch etwas recherchieren müssen. Am liebsten wäre es mir, wenn die Parameter erst zurückgegeben werden, wenn die Sub-Gui geschlossen wird. Ich hatte gehofft einfach einen Befehl in der DeleteFcn unterbringen zu können aber so einfach scheint es wohl nicht zu gehen oder?!?
Grüße, Stephan
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.495
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 25.04.2014, 18:59
Titel:
|
|
Hallo,
Zitat: |
muss ich in der Opening function was verändern, in der definition oder dergleichen, oder werden para_4...6 in die handles-Struktur eingepflegt? |
Nein, in der Definition solltest du nichts verändern. varargin wird ein Cell Array mit 3 Elementen sein. Der Inhalt der ersten Cell ist para_4 etc.
Zitat: |
Ich hatte gehofft einfach einen Befehl in der DeleteFcn unterbringen zu können aber so einfach scheint es wohl nicht zu gehen oder?!? |
Ich würde da die CloseRequestFcn verwenden - und in die muss dann das uiresume rein.
Grüße,
Harald
|
|
|
balli1187 |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 26
|
|
|
|
Anmeldedatum: 15.06.12
|
|
|
|
Wohnort: Magdeburg
|
|
|
|
Version: 2007b
|
|
|
|
|
|
Verfasst am: 26.04.2014, 11:05
Titel:
|
|
Mahlzeit
Nochmals großen Dank an Harald für die Hilfe! Ich habs jetzt hinbekommen und funktioniert sehr gut. Ich möchte den Code hier auszugsweise posten (die Stellen die angepasst werden mussten), falls nochmal jemand ein Beispiel sucht
Der Aufruf sieht dann folgendermaßen aus
Die Subgui wird dann ausgeführt und beim schließen, wernden die entsprechenden Werte zurückgegeben.
Im Moment bekomme ich noch eine Fehlermeldung, wenn ich die Sub-Gui teste und vergesse Parameter zu übergeben. Aber gut, ich will ja Parameter übergeben und zurückbekommen, also muss ich es auch richtig aufrufen
Schönes Wochenende, Stephan
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.495
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 26.04.2014, 11:15
Titel:
|
|
Hallo,
du könntest den Fehler z.B. so umgehen:
Im Code hat sich auch ein Fehler eingeschlichen:
Grüße,
Harald
|
|
|
balli1187 |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 26
|
|
|
|
Anmeldedatum: 15.06.12
|
|
|
|
Wohnort: Magdeburg
|
|
|
|
Version: 2007b
|
|
|
|
|
|
Verfasst am: 26.04.2014, 12:15
Titel:
|
|
Kleiner Copy-Paste-Fehler... Danke.
Das verstehe ich nicht ganz! nargin gibt mir doch die Zahl die übergebenen Parameter zurück - also in mienem Fall 3, wenn ich die Funktion aufrufe wie beschrieben, oder nicht?
Wenn ich am Ende der OpeningFcn einen Haltepunkt setze, erscheint varargin als 1x3 Cell-Array im Workspace.
Gruß, Stephan
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.495
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 26.04.2014, 13:00
Titel:
|
|
Hallo,
nargin ist die Anzahl der insgesamt übergebenen Argumente. Du rufst zwar mit drei Argumenten auf, aber du rufst die OpeningFcn ja nicht direkt auf.
Die OpeningFcn nimmt hObject, eventdata, handles und dann varargin entgegen. Deine drei Argumente wären also das 4. - 6.
Grüße,
Harald
|
|
|
balli1187 |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 26
|
|
|
|
Anmeldedatum: 15.06.12
|
|
|
|
Wohnort: Magdeburg
|
|
|
|
Version: 2007b
|
|
|
|
|
|
Verfasst am: 27.04.2014, 09:23
Titel:
|
|
Zitat: |
nargin ist die Anzahl der insgesamt übergebenen Argumente. |
Ahhhh... Alles klar! Ich dachte es handelte sich nur um die Anzahl der Argumente von varargin... So ist es natürlich klar, dass die drei "Standard"-Argumente noch hinzukommen.
Danke und weiterhin fröhliches Programmieren,
Stephan
|
|
|
|
|
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
|
|
Impressum
| Nutzungsbedingungen
| Datenschutz
| FAQ
| 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.
|
|