|
|
EDIT Text bei 2 interagierenden GUIs |
|
gui_einsteiger |
Forum-Fortgeschrittener
|
|
Beiträge: 80
|
|
|
|
Anmeldedatum: 08.03.12
|
|
|
|
Wohnort: ---
|
|
|
|
Version: R2013b
|
|
|
|
|
|
Verfasst am: 14.06.2012, 07:36
Titel: EDIT Text bei 2 interagierenden GUIs
|
|
|
|
|
Hallo,
ich habe zwei GUI programmiert, die miteinander interagieren. Mein erstes GUI öffnet beim drücken eines Buttons mein zweites GUI, über einen weiteren Button gelange ich wieder zurück zum ersten GUI.
Nun zu meinem Problem. In meinem ersten GUI habe ich ein EDIT-Text-Feld. Dieser Wert ist bei Programmstart mit 0 initialisiert (im Inspector angegeben). Wenn ich nun von meinem zweiten GUI in mein erstes GUI zurück wechsle, wird der Wert immer wieder auf 0 gesetzt und der von mir vorher eingegebene Wert ist zwar noch visuell ersichtlich (steht im EDIT-Feld), im Hintergrund rechnet mein Programm jedoch wieder mit 0. Ich muss immer erst in diesem Feld den aktuellen Wert mit Return bestätigen, damit mein Programm ihn wieder zum rechnen nutzt. Kann ich das ganze umgehen, sodass mein GUI immer den aktuellen Wert aus dem EDIT-Feld nutzt und nicht immer auf dem im Inspector vorgegebenen zurückgreift?
Hier der dazu gehörige Ausschnitt aus meinem Quellcode:
Initialisieren in der OpeningFunction
Aufruf beim Drücken eines Buttons (Wert wird hier zur Berechnung benötigt)
Ich hoffe ihr könnt mir da weiterhelfen
Schon mal vielen Dank
gui_einsteiger
|
|
|
|
|
Jan S |
Moderator
|
|
Beiträge: 11.057
|
|
|
|
Anmeldedatum: 08.07.10
|
|
|
|
Wohnort: Heidelberg
|
|
|
|
Version: 2009a, 2016b
|
|
|
|
|
|
Verfasst am: 14.06.2012, 08:45
Titel: Re: EDIT Text bei 2 interagierenden GUIs
|
|
Hallo gui_einsteiger,
Ich vermute, die Werte im handles Struct werden neu gesetzt, aber eine Kopie des alten handles Structs wird in den Callbacks weiter verwendet. Ohne dan ganzen relevanten Code zu sehen, ist das aber nur geraten.
Der Struct handles muss nach jeder Änderung wieder in der Figure gespeichert werden:
und vor jedem Aufruf wieder dynamisch ausgelesen werden:
Der handles Struct aus den Input Argumenten ist der, der auch während der Erstellung des GUIs erzeugt wurde, er enthält also nicht die Änderungen.
Der Debugger hilft solchen Problemen auf den Grund zu gehen.
Gruß, Jan
|
|
|
gui_einsteiger |
Themenstarter
Forum-Fortgeschrittener
|
|
Beiträge: 80
|
|
|
|
Anmeldedatum: 08.03.12
|
|
|
|
Wohnort: ---
|
|
|
|
Version: R2013b
|
|
|
|
|
|
Verfasst am: 14.06.2012, 12:52
Titel:
|
|
Hallo,
wie kann mir der Debugger bei dem Problem helfen?
Du schreibst, der Struct handles muss nach jeder Änderung wieder in der Figure gespeichert werden. An welcher Stelle muss ich das in meinem Programm machen? Kenn mich da leider noch nicht so gut aus wie ich das gerne würde.
Wann muss ich das Struct handle wieder dynamisch auslesen? Wenn ich von meinem 2. Gui wieder in mein erstes zurückspringe?
Falls du mehr Code-Teile brauchst, kannst du mir sagen welche Teile du dafür sehen musst, dann kann ich dir diese zur Verfügung stellen. Will nur nicht meinen kompletten Code posten.
Vielen Dank schon mal
gui_einsteiger
|
|
|
Jan S |
Moderator
|
|
Beiträge: 11.057
|
|
|
|
Anmeldedatum: 08.07.10
|
|
|
|
Wohnort: Heidelberg
|
|
|
|
Version: 2009a, 2016b
|
|
|
|
|
|
Verfasst am: 14.06.2012, 16:46
Titel:
|
|
Hallo gui_einsteiger,
Zitat: |
wie kann mir der Debugger bei dem Problem helfen? |
Du kannst mit dem debugger Zeile für Zeile durch den Code gehen und beobachten, wieso welche Variable auf welchen Wert gesetzt wird.
Wenn Du einen struct, z.B. den handles Struct, innerhalb einer Funktion änderst, sind diese Änderungen von Ausserhalb der Funktion nicht sichtbar, da die Funktion ihre eigene Kopie des Structs bearbeitet. Damit der handles Struct dann auch in allen anderen Unterfunktionen in der geänderten Fassung erscheint, muss man ihn am Ende der Funktion per "guidata(hObject, handles)" in der Figure speichern, und beim Eintritt in eine neue Funktion per "handles = guidata(hObject)" wieder auslesen.
Diese beiden Aufrufe sind nur Wrapper für "setappdata(FigureHandle, 'Handles', handles)" und "handles = getappdata(FigureHandle, 'Handles')", siehe "edit guidata".
Gruß, Jan
|
|
|
|
|
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.
|
|