|
|
Funktion in einer GUI durch andere GUI aufrufen |
|
vile |
Forum-Newbie
|
|
Beiträge: 9
|
|
|
|
Anmeldedatum: 17.03.14
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 23.04.2014, 09:33
Titel: Funktion in einer GUI durch andere GUI aufrufen
|
|
Hallo zusammen,
nach langer und leider erfolgloser Suche im Netz frage ich hier nach, ob jemand direkt helfen kann oder weiß wo ich eine Antwort auf meine Frage finde:
Ich erstelle eine GUI mit einer Art Assistent/Wizard-Funktionalität. Dazu möchte ich mit callbacks (einfach buttons) Funktionen aufrufen, die in anderen GUIs enthalten sind.
Wie muss ich im Prinzip vorgehen?
Konkret: die Funktion 'function draw' in der 'MainGUI' soll durch einen Klick auf einen button der 'SubGUI' in der 'MainGUI' ausgeführt werden, sodass die Funktion 'function draw' in der 'MainGUI' etwas plottet.
Aber im besten Fall schaffe ich es dass in der SubGUI geplottet wird...
Also: Wie gehts oder wo steht wie es geht?
Vielen Dank im Voraus!
Vile
|
|
|
|
|
denny |
Supporter
|
|
Beiträge: 3.853
|
|
|
|
Anmeldedatum: 14.02.08
|
|
|
|
Wohnort: Ulm
|
|
|
|
Version: R2012b
|
|
|
|
|
|
Verfasst am: 23.04.2014, 14:36
Titel:
|
|
Hallo, wenn du die GUIs über GUIDE erstellt hast, dann
in der Button-Callback des SubGUI muss der Aufruf in der Art aussehen:
|
|
|
vile |
Themenstarter
Forum-Newbie
|
|
Beiträge: 9
|
|
|
|
Anmeldedatum: 17.03.14
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 28.04.2014, 20:38
Titel:
|
|
Hallo, danke für deine Antwort.
Aber ich habe es auch mit deinem Tipp nicht geschafft.
In meiner mainGUI sieht die Funktion so aus:
Habe auch ohne (hObject, handles) probiert.
In der subGUI:
Hier auch mit verschiedenen Übergabewerten versucht.
Steht dort "close", dann funktioniert es wie es soll (mit Klick auf ok schließt das Fenster und in der mainGUI wird geplottet). Wird "close" aber auskommentiert, so wird in der subGUI geplottet, heißt also dass diese Lösung nur so halb funktioniert.
Was also tun wenn das Fenster der subGUI offen bleiben soll und im Hintergrund in der mainGUI geplottet werden soll?
|
|
|
denny |
Supporter
|
|
Beiträge: 3.853
|
|
|
|
Anmeldedatum: 14.02.08
|
|
|
|
Wohnort: Ulm
|
|
|
|
Version: R2012b
|
|
|
|
|
|
Verfasst am: 28.04.2014, 22:30
Titel:
|
|
Hallo
da der Fokus an der SubGUI liegt, wird deswegen dorthin geplottet.
Also muss man beim Plot, das Handle deiner Axes übergeben
also in draw:
|
|
|
vile |
Themenstarter
Forum-Newbie
|
|
Beiträge: 9
|
|
|
|
Anmeldedatum: 17.03.14
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 29.04.2014, 07:35
Titel:
|
|
Danke für die Antwort, aber ich kriege es nicht hin
Das Problem ist, dass ich von handles in der GUI keine Ahnung habe und auch bisher nichts passendes im Netz dazu gefunden habe, um mich einzuarbeiten.
Das Diagramm in der mainGUI heißt axes_main.
Wenn ich das probiere, lässt sich wieder nur die Funktio innerhalb der mainGUI aufrufen, aber nicht außerhalb:
Aufruf:
Wofür wird hier eigentlich hObject gebraucht? Habe das aus einem Tutorial.
Am liebsten wäre mir ein Link, Tutorial, Beispielprojekt oder Video oder so um mich in die Thematik der handles einzulesen. Dann müsstet ihr mir nicht alles erklären
Danke im Voraus!
|
|
|
denny |
Supporter
|
|
Beiträge: 3.853
|
|
|
|
Anmeldedatum: 14.02.08
|
|
|
|
Wohnort: Ulm
|
|
|
|
Version: R2012b
|
|
|
|
|
|
Verfasst am: 29.04.2014, 14:19
Titel:
|
|
Hallo,
Zitat: |
Wofür wird hier eigentlich hObject gebraucht? |
hObject ist das handle des Graphischen Objekts, welches die Callback-Funktion ausgelöst hat. z.B. man kann eine Callback-Funktion für mehrere Objekte nutzen.z.b Radiobuttons, da möchte ja unterscheiden welcher Button hat die Funktion ausgelöst.
Auf jeden Fall musst du bei der ersten Aufruf von SubGui, Handle der MainGUI an SubGui übergeben, dazu SETAPPDATA/GETAPPDATA Methode aus Video 2 nutzen
Danach handles der MainGUI an draw-Funktion übergeben
das sind z.B. gute Videotutorials:
http://blogs.mathworks.com/pick/200.....nputs-to-guide-callbacks/
http://blogs.mathworks.com/videos/2...../03/guide-video-part-two/
Interessant ist auch die Funktion GCBF, die muss dann aber in der oberen Funktion in m-File implementiert werden
|
|
|
vile |
Themenstarter
Forum-Newbie
|
|
Beiträge: 9
|
|
|
|
Anmeldedatum: 17.03.14
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 03.06.2014, 12:21
Titel:
|
|
Zitat: |
Auf jeden Fall musst du bei der ersten Aufruf von SubGui, Handle der MainGUI an SubGui übergeben |
Was genau meinst du damit? In sub_OpeningFcn per setappdata bzw. getappdata oder dann erst wenns auch gebraucht wird?
Wahrscheinlich so etwas, funktioniert aber leider nicht:
main GUI:
sub:
Es kommt die Meldung Undefined function 'draw' for input arguments of type 'struct'.
Vielleicht kann mir jemand den entscheidenden Tipp geben
|
|
|
denny |
Supporter
|
|
Beiträge: 3.853
|
|
|
|
Anmeldedatum: 14.02.08
|
|
|
|
Wohnort: Ulm
|
|
|
|
Version: R2012b
|
|
|
|
|
|
Verfasst am: 03.06.2014, 12:46
Titel:
|
|
Hallo
du hast das fast richtig
in der SUB musste der Aufruf so lauten:
|
|
|
vile |
Themenstarter
Forum-Newbie
|
|
Beiträge: 9
|
|
|
|
Anmeldedatum: 17.03.14
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 03.06.2014, 12:52
Titel:
|
|
Super, vielen vielen Dank!
Genau so sollte es auch sein!
Danke
|
|
|
|
|
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.
|
|