WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Rückgabeparameter einer GUI

 

DSP
Forum-Meister

Forum-Meister



Beiträge: 2.117
Anmeldedatum: 28.02.11
Wohnort: ---
Version: R2014b
     Beitrag Verfasst am: 02.12.2014, 16:39     Titel: Rückgabeparameter einer GUI
  Antworten mit Zitat      
Hallo goMatlab Forum,

ich habe eine kleine GUI geschrieben, mit der man 3. Farben in hex für einen plot in editfeldern festlegen kann. Die hex Werte werden in RGB Werte umgewandelt und sollen beim Drücken des Buttons "Save" u.a. von der GUI zurückgegeben werden.


Code:

function [UserEnd, RGBcolors, HEXcolors] = GUI_setColors(langPack,colors)

handles.fig = figure(...);
...
% hier folgen die ganzen GUI Objecte
...

% Übergabe Language struct
handles.langPack = langPack;
handles.RGBcolors = colors;
handles.HEXcolors = {'2e2e2e';'5d5b5b';'e3e3e3'}; % default
handles.UserEnd = 'Cancel';

% Update handles structure
guidata(handles.fig, handles);

% Wait until figure is closed.
uiwait(handles.fig)

% % --- Outputs from this function are returned to raceXMLcreator
switch(handles.UserEnd)
    case 'Cancel'
        UserEnd = 'Cancel';
        RGBcolors = [];
        HEXcolors = [];
    case 'Save'
        UserEnd = 'Save';
        RGBcolors = handles.RGBcolors;
        HEXcolors = handles.HEXcolors;
end

% Hier die ganzen Funktionen ------------------------------------

...

% --- Executes on button press in pushbutton1.
function SAVE_button_Callback(hObject, eventdata)
% hObject    handle to pushbutton1 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
% get the structure in the subfunction
handles = guidata(hObject);
handles.UserEnd = 'Save';
% save the changes to the structure
guidata(handles.fig,handles);
% close GUI
delete(handles.fig);

% --- Executes on button press in pushbutton2.
function CANCEL_button_Callback(hObject, eventdata)
% hObject    handle to pushbutton2 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
% get the structure in the subfunction
handles = guidata(hObject);
handles.UserEnd = 'Cancel';
% save the changes to the structure
guidata(handles.fig,handles);
% close GUI
delete(handles.fig);
 



Nun zum Problem: Es wird der "Save" button gedrückt und dessen Callback aufgerufen. Bis hier hin sind auch alle Eingabe in handles gespeichert.
Allerdings ist nach uiwait(handles.fig) der Zustand immer Cancel und somit die Rückgabewerte der Farben immer leer. So wie es eben in dem case 'Cancel' definiert ist.

Wo liegt mein Fehler?

Vielen Dank für eure Hilfe!

Gruß DSP
Private Nachricht senden Benutzer-Profile anzeigen


DSP
Themenstarter

Forum-Meister

Forum-Meister



Beiträge: 2.117
Anmeldedatum: 28.02.11
Wohnort: ---
Version: R2014b
     Beitrag Verfasst am: 02.12.2014, 19:14     Titel:
  Antworten mit Zitat      
Problem gelöst! Man muss die GUI Mainfunction und deren subfunctions jeweils mit end deklarieren.

Code:

function [] = myGUI()
...
    % subfunctions
    function button_Callback()
        ...
    end

end
 



Ich habe bisher GUI's immer mit GUIDE erstellt, wo diese Syntax nicht vorhanden ist.
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

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 | goMatlab RSS Button 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.