|
|
Sub GUI verschwindet hinter Main GUI |
|
Deniz |
Forum-Fortgeschrittener
|
|
Beiträge: 90
|
|
|
|
Anmeldedatum: 31.07.10
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 14.04.2011, 12:17
Titel: Sub GUI verschwindet hinter Main GUI
|
|
Hallo,
ich habe ja erst kürzlich nachgefragt bzgl der Erstellung eines Sub GUIs.
Jetzt ist es so, dass ich Daten aus der Main im Sub einlese. Das funktioniert an sich auch alles, jedoch gibt es 2 "Schönheitsfehler":
Nach dem Drücken des Pushbuttons im Sub GUI (um die Daten einzulesen aus der Main) ruckelt das Main zweimal und das Sub GUI verschwindet hinter der Main.
Mein Main GUI ist zentriert auf dem Bildschirm und füllt ihn vollkommen aus. Um im Sub GUI weiterarbeiten zu können, muss ich es erst wieder anklicken, was eigtl nicht sein sollte.
Hat jemand einen Tipp, um dieses Problem zu lösen?
Danke schon mal!
Gruß
Deniz
|
|
|
|
|
Marco H. |
Forum-Guru
|
|
Beiträge: 404
|
|
|
|
Anmeldedatum: 12.11.10
|
|
|
|
Wohnort: Dortmund
|
|
|
|
Version: 2010a/2012b
|
|
|
|
|
|
Verfasst am: 14.04.2011, 13:01
Titel:
|
|
Hey,
mmhh das hört sich ehr danach an als würdest du das m-file deiner MainGui nach betätigen des Buttons in der SubGui aufrufen. Denn weder wackelt eine GUI noch kommt sie automatisch nach vorne wenn man dies nicht irgendwo im Quelcode schreibt.
Fenster kannst du folgendermaßen nach vorne holen:
MfG Marco
|
|
|
Deniz |
Themenstarter
Forum-Fortgeschrittener
|
|
Beiträge: 90
|
|
|
|
Anmeldedatum: 31.07.10
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 14.04.2011, 13:11
Titel:
|
|
Hey Marco,
Ich rufe zunächst mein MainGUI auf. Dort betätige ich einen Button, wodurch ich Werte an ein Simulink-Modell weiterleite und dann berechnete Werte in die Main zurückhole. In der Main befindet sich ein weiterer Button wodurch ich ein Sub GUI aufrufe.
In der Sub betätige ich wiederrum einen Button, um Werte aus der Main der Sub einzulesen.
MfG
Deniz
|
|
|
Marco H. |
Forum-Guru
|
|
Beiträge: 404
|
|
|
|
Anmeldedatum: 12.11.10
|
|
|
|
Wohnort: Dortmund
|
|
|
|
Version: 2010a/2012b
|
|
|
|
|
|
Verfasst am: 14.04.2011, 13:17
Titel:
|
|
Hey,
ja das habe ich schon verstanden. Nur nachdem du den Button deiner SubGui betätigst um handles in der MainGui zu verändern fängt diese nicht ohne Grund an zu wackeln wie dus oben geschrieben hast. Und schon garnicht wird diese zur Current Figure wenn dus nicht expliziet irgendwo programmiert hast... Dementsprechend denke ich, dass du das irgendwo in deinem Quellcode das so programmiert hast, dass nach betätigen des Pushbuttons der SubGui die MainGui die Current Figure wird...
MfG Marco
|
|
|
Deniz |
Themenstarter
Forum-Fortgeschrittener
|
|
Beiträge: 90
|
|
|
|
Anmeldedatum: 31.07.10
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 14.04.2011, 13:38
Titel:
|
|
Hey,
also um meine Daten aus der Main (CR_Prozess) in der Sub einzulesen, steht in der pushbutton Callback folgeneder Code(nach einem Tutorial):
Ansonsten habe ich eigtl. keinen weiteren Code eingefügt.
Gruß
Deniz
|
|
|
Marco H. |
Forum-Guru
|
|
Beiträge: 404
|
|
|
|
Anmeldedatum: 12.11.10
|
|
|
|
Wohnort: Dortmund
|
|
|
|
Version: 2010a/2012b
|
|
|
|
|
|
Verfasst am: 15.04.2011, 08:01
Titel:
|
|
Hey,
ja da sieht man doch schon den Übeltäter.
Du rufst hier erneut die Mainfigure auf. Besser ist beim Aufruf der SubGui das handle der Maingui mitzuübergeben...
MfG Marco
|
|
|
Deniz |
Themenstarter
Forum-Fortgeschrittener
|
|
Beiträge: 90
|
|
|
|
Anmeldedatum: 31.07.10
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 16.04.2011, 18:23
Titel:
|
|
Hey Marco,
ich habe jetzt alles eingegeben, jedoch kommt folgende Fehlermeldung:
Ich weiß nicht was ich falsch gemacht habe, jedoch hab ich das im allgemeinen mit den handles noch nicht 100%ig verstanden.
auch die Zeile mit dem varargin{1} kann ich nur blind abtippen, weil ich das bisher nicht gebraucht habe.
Ich hoffe die Fehlermeldung hilft dir weiter. Bzw. wenn du weitere Infos brauchst geb ich sie natürlich gerne.
Gruß
Deniz
|
|
|
Sco |
Forum-Meister
|
|
Beiträge: 699
|
|
|
|
Anmeldedatum: 15.08.10
|
|
|
|
Wohnort: Dundee
|
|
|
|
Version: 2008a, 2010a
|
|
|
|
|
|
Verfasst am: 17.04.2011, 01:33
Titel:
|
|
|
|
|
Hallo,
was dir Matlab mitzuteilen versucht ist, dass es in:
es kein Struct filed mit dem Namen CR_Prozess gibt, d.h. es gibt "handles. CR_Prozess" nicht. Hasst du, wie Marco bereits beschrieben hat, in der SubGuiOpeningFcn "handles.CR_Prozess" definiert und die handles Struktur aktualisiert (guidata):
Wie schon beschriben musst du beim Aufruf deines SubGUIs die Variablen aus der MainGUI übergeben:
Das varargin bedeutet nur, dass eine variable Anzahl von Variablen an eine Funktion übergeben werden kann (falls du eben nicht davor weisst wie viele Variablen übergeben werden sollen). Kleines Beispiel:
In der Regel wird bei variabler Anzahl von Eingangsvariablen einer Funktion mit:
überprüft wie viele Variablen übergeben wurden, und dementsprechend die Funktion ausgefürt. D.h. um bei obigen Bsp. zu bleiben, wird beispielsweise nur die Zahl übergeben (nargin==1) so wird eine Berechnung ausgeführt, wird Zahl und Farbe übergeben (nargin==2) wird z.B. ein Punkt mit dieser Farbe gezeichnet...usw.
Hoffe jetzt sind alle Unklarheiten beseitigt. Aber wie schon gesagt Marco sein Code ist genau das was du brauchst, ich hoffe eben nur das es jetzt alles ein wenig verständlicher ist.
MFG
Sco
|
|
|
Deniz |
Themenstarter
Forum-Fortgeschrittener
|
|
Beiträge: 90
|
|
|
|
Anmeldedatum: 31.07.10
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 21.04.2011, 15:07
Titel:
|
|
|
|
|
Hi Sco,
danke dir für die ausführliche Antwort. Und ja, ich habe es wirklich besser verstanden jetzt!
Aber das mit dem varargin ist mir doch nicht ganz klar. Also ich verstehe, dass ich damit Variablen aus der Main an die Sub übergebe.
Und da es bei mir nicht funktioniert ( Fehlerbeschreibung: Undefined Variable varargin{1}) verstehe ich das jetzt so, dass ich wie in deinem Zahlenbeispiel beschrieben varargin{1] definieren muss.
Wenn ich meiner Sub 5 Variablen übergebe, muss ich dann in der Callback der Sub
schreiben?
Mein Code schaut momentan aus wie folgt:
Callback der Sub(Zwischenueberhitzung)
Die opening function der Sub
Und hier die Callback der Daten_einlesen
Ich hätte jetzt aber gedacht, dass varargin{1} in der Callback der Sub bedeutet, dass ich alle benötigten Variablen für die Sub aus der Main übergebe, es kommt aber folgender Fehler:
Ich habe das Problem bis jetzt so umgangen, dass ich die Befehle load und save verwende, da ich meine Datei aber später in eine .exe umwandeln möchte, glaube ich nicht, dass das mit save und load noch funtionieren wird.
MfG
Deniz
|
|
|
Marco H. |
Forum-Guru
|
|
Beiträge: 404
|
|
|
|
Anmeldedatum: 12.11.10
|
|
|
|
Wohnort: Dortmund
|
|
|
|
Version: 2010a/2012b
|
|
|
|
|
|
Verfasst am: 21.04.2011, 18:03
Titel:
|
|
|
|
|
Hey,
Zitat: |
Ich habe das Problem bis jetzt so umgangen, dass ich die Befehle load und save verwende, da ich meine Datei aber später in eine .exe umwandeln möchte, glaube ich nicht, dass das mit save und load noch funtionieren wird.
|
Auch solche Sachen gehen natürlich später nachdem man es kompiliert hat...
Aber nun zu deinen Problemen. Ich denke, ganz hast du das noch nicht verstanden. Die Callbacks in vom GUIDE erstellten Guis haben kein varargin sondern nur (hObject, eventdata, handles). Genau das sagt auch die Fehlermeldung. Das varargin taucht z.B. bei der Opening_fcn auf. Das einfachste wäre du debuggst mal in deiner Opening_fc z.B. in sub_gui_Zwischenueberhitzung_OpeningFcn. Einfach ein Breakpoint setzen und dann durch "next Step (F10)" weiter beobachten was passiert. Das gleiche kannst du auch in den Callbacks machen. Dann siehst du genau was im Workspace ist und welche Variablen vorhanden sind und welche nicht...
Beispiel:
Ich hoffe dass es dir so weiterhilft. Ansonsten gibs darüber auch in der Hilfe massig Beispiele. Auch zu varargin, varargout, nargin, etc wirst du da fündig...
MfG Marco
|
|
|
Marco H. |
Forum-Guru
|
|
Beiträge: 404
|
|
|
|
Anmeldedatum: 12.11.10
|
|
|
|
Wohnort: Dortmund
|
|
|
|
Version: 2010a/2012b
|
|
|
|
|
|
Verfasst am: 21.04.2011, 22:42
Titel:
|
|
|
|
|
|
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 - 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.
|
|