Verfasst am: 10.12.2015, 11:42
Titel: GUI als Funktion mit Ausgabewert aufrufen
Hallo zusammen,
ich bin noch relativ neu auf dem GUI-Gebiet bei Matlab und hoffe die Frage ist nicht schon an anderer Stelle hier erklärt.
Ich würde gern innerhalb eines ganz normalen Programms (keine GUI) eine GUI-Funktion aufrufen, in der der Nutzer einen von mehreren Pushbutton drücken muss um eine Auswahl zu treffen. Anschließend soll sich die GUI wieder schließen und entsprechend der Auswahl soll ein Wert an das Programm, das die GUI aufgerufen hat, übergeben werden.
Leider ist mir etwas unklar, wie ich diese Wertübergabe in diesem Fall mache. Das Aufrufen der GUI klappt und wenn ich einen der Button drücke, schließt sie sich auch wieder und es wird ein Wert in einer Variable gespeichert. Nur die Übergabe funktioniert nicht, weil ich auch nicht so recht weiß, wie das in dem Fall überhaupt funktioniert. Ich bekomme eine Fehlermeldung, dass meine Zielvariable in meiner Hauptfunktion der GUI nicht beschrieben wird.
Das Programm, was die GUI aufruft, soll ja außerdem auch warten bis diese wieder geschlossen wird.
Ich hoffe meine Problemstellung ist soweit klar und es findet sich jemand, der mir bei der Implementation helfen kann.
Verfasst am: 11.12.2015, 22:32
Titel: Re: GUI als Funktion mit Ausgabewert aufrufen
Hallo JaseyJay,
Die Befehle
uiwait
und
uiresume
sind da hilfreich. Im Code wird das GUI erstellt und dann wartet das Programm. Das Drücken des Buttons speichert dann die Auswahl z.B. in den UserData der Figure und setzt den Programmablauf mit
uiresume
wieder fort:
Code:
function myCode
FigH = figure;
uicontrol('Style', 'PushButton', 'String', 'Press', ...
'Callback', {@myCallback, FigH});
uiwait(FigH);
Result = get(FigH, 'UserData');
delete(FigH);
function myCallback(hObject, EvenData, FigH) set(FigH, 'UsersData', 1);
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
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.