|
|
Static Text in fremden GUI ansprechen |
|
Coelophysis |
Forum-Anfänger
|
|
Beiträge: 10
|
|
|
|
Anmeldedatum: 18.07.16
|
|
|
|
Wohnort: ---
|
|
|
|
Version: R2013b 64 Bit
|
|
|
|
|
|
Verfasst am: 02.08.2016, 10:03
Titel: Static Text in fremden GUI ansprechen
|
|
Hallo zusammen,
ich habe ein GUI "A" erstellt, mit dem ich über einen Button ein zweites GUI "B" starte. In GUI "B" findet eine Auswahl statt, die nach Bestätigung und Schließen von B in einem Static Text in A angezeigt werden soll.
Das Problem ist, dass ich das ja im Callback für den OK-Button in B schreiben müsste. A bleibt dabei geöffnet. Wie spreche ich denn jetzt das fremde geöffnete GUI "A" und seinen Static Text an? Ich finde leider nirgends eine Syntax dafür.
Vielen Dank und schöne Grüße!
Coelo
|
|
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.495
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 02.08.2016, 12:14
Titel:
|
|
Hallo,
du kannst den Aufruf aus A mit
machen und in der OutputFcn der GUI definieren, was zurückgegeben werden soll.
Grüße,
Harald
|
|
|
Coelophysis |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 10
|
|
|
|
Anmeldedatum: 18.07.16
|
|
|
|
Wohnort: ---
|
|
|
|
Version: R2013b 64 Bit
|
|
|
|
|
|
Verfasst am: 02.08.2016, 13:19
Titel:
|
|
Danke für die schnelle Antwort!
Aber das kriege ich noch nicht so richtig eingebaut.
ertses GUI: EF
zweites GUI: Selection
Button select in GUI "EF" ruft GUI "Selection" auf
Button Ok beendet GUI "Selection" und schreibt in ListeX (StaticText) in GUI "EF".
Ich habe das Output = EF in die Callback Funktion des Buttons in Selection geschrieben. Die OutputFcn wird aber irgendwie immer beim Aufrufen der GUIs schon abgearbeitet...
Aber irgendwie ist das alles noch nicht da, wo es hingehört.
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.495
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 02.08.2016, 14:42
Titel:
|
|
Hallo,
Zitat: |
Die OutputFcn wird aber irgendwie immer beim Aufrufen der GUIs schon abgearbeitet... |
uiwait
in die OpeningFcn von Selection, und
uiresume
wenn die Eingabe bestätigt ist.
evalin ist in den seltensten Fällen notwendig und sollte vermieden werden.
Grüße,
Harald
|
|
|
Coelophysis |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 10
|
|
|
|
Anmeldedatum: 18.07.16
|
|
|
|
Wohnort: ---
|
|
|
|
Version: R2013b 64 Bit
|
|
|
|
|
|
Verfasst am: 02.08.2016, 16:31
Titel:
|
|
Aber jetzt weiß ich doch immer noch nicht, wo das Output = ?? rein kommt. Es müsste doch im Code stehen, der das GUI B schließt, also in OK_Callback (GUI B) steht Output = A; oder sehe ich das falsch? Und wo arbeitet Matlab dann weiter? Startet es dann die OutputFnc von GUI A? Muss dann auch in A selbst der Code zum Ändern von A rein oder steht das im OutputFcn von B oder wo kommt das rein?
Andere Beispiele arbeiten immer mit der varargout, aber es geht mir ja gar nicht um den Wert, der in B ausgewählt wurde. Den schreibe ich ja eh in eine Variable, weil ich den später noch brauche. Ich will nur, dass sich GUI A nach dem Schließen von B verändert...
Ich sage Bescheid, wenn ich es habe.
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.495
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 02.08.2016, 18:22
Titel:
|
|
Hallo,
wenn du nur Bruchstücke zur Verfügung stellst, ist es entsprechend schwierig, dir weiterzuhelfen.
Zitat: |
OK_Callback (GUI B) steht Output = A; oder sehe ich das falsch? |
Wenn GUI B von GUI A aufgerufen wird, dann genau umgekehrt.
Deine weiteren Fragen sind mir nicht klar.
Zitat: |
aber es geht mir ja gar nicht um den Wert, der in B ausgewählt wurde. Den schreibe ich ja eh in eine Variable, weil ich den später noch brauche. |
... und was passiert mit dieser Variable nach Beendigung der GUI, wenn du nicht irgendwelche Krücken wie evalin/assignin verwendest? Es gibt sie nicht mehr.
Zitat: |
Ich will nur, dass sich GUI A nach dem Schließen von B verändert... |
Und dazu ist es das vernünftigste, die benötigten Informationen von B nach A zurückzugeben.
Am einfachsten wäre es, wenn du ein (abgespecktes) Beispiel zur Verfügung stellen kannst. Ansonsten wird's schwierig.
Grüße,
Harald
|
|
|
Coelophysis |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 10
|
|
|
|
Anmeldedatum: 18.07.16
|
|
|
|
Wohnort: ---
|
|
|
|
Version: R2013b 64 Bit
|
|
|
|
|
|
Verfasst am: 09.08.2016, 07:57
Titel:
|
|
Jetzt habe ich mal ein bisschen weitergemacht und ein übersichtlicheres Beispiel formuliert. Dabei enthält das GUI "EF" die drei Textboxen "Filepath", "Filename" und "Filetype", deren Strings später einen Speicherpfad ergeben und an das Skript "Boxplots" weitergegeben werden.
Im Output von EF steht:
Ich nehme an, dass ich die varargout{1 bis 3} benutzen muss. Ich habe derartiges in der Matlabhilfe gefunden, was ich aber nicht umgesetzt bekomme:
Hier werden die einzelnen varargout{1:n} ja auch in der for-Schleife belegt. Aber die Syntax der ersten Zeile in der Hilfe passt doch nicht zur Sytax, die automatisch in der OutputFcn erstellt wird.
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.495
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 09.08.2016, 15:50
Titel:
|
|
Hallo,
grundsätzlich sind beide Varianten möglich.
Da es in GUIDE so vorgesehen ist, solltest du dich auch daran halten. Du brauchst also nur varargin{k} definieren, das mit dem s kannst du einfach weglassen.
Meine Empfehlung wäre, alle benötigten Infos in einer Struktur zusammenzufassen, so dass du nur ein Argument zurückgibst.
Grüße,
Harald
|
|
|
|
|
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.
|
|