Verfasst am: 30.10.2012, 10:30
Titel: Drop-down menu mit Bilddisplay
Hallo zusammen!
Starte gerade mein neues Abenteuer in MATLAB, und zwar arbeite ich nun mit GUI's.
Ich möchte was ganz einfaches erstellen, komme aber mit dem GUI Editor von MATLAB nicht ganz zurecht.
Aussehen (siehe Attachment):
1) Drop-down menu mit mehreren Bildnamen zu Auswahl
2) Pushbutton: Go
3) 2 Panels, die zu Anfang leer sind
Funktionalität:
Sobald der User ein Bild auswählt und auf 'Go' klickt wird im ersten Panel das entsprechende Bild angezeigt.
Im zweiten Panel wird eine C-Funktion ausgeführt und das resultierende Bild angezeigt.
Das Aussehen habe ich mit dem Editor angefertigt, aber die Funktionalität weiss ich nicht zu implementieren.
wenn du die GUI speicherst, wird eine .m-Datei erzeugt. Dort werden sämtliche auszuführenden Aktionen hinterlegt.
In deinem Fall musst du wohl den Callback des Pushbuttons anpassen. Sprich: zunächst abfragen, welches Bild ausgewählt wurde, es dann in das erste Koordinatensystem plotten, die Funktion ausführen, dann in das zweite Koordinatensystem plotten.
Nebenfrage: wie wird das Drop-down Menu mit Einträgen befüllt?
Die Antwort auf die Nebenfrage ist in mit '(color=red)..(/color) markiert.
Ich möchte einfachheitshalber überprüfen ob beim Klick auf 'Display' überhaupt was passiert und habe deshalb ein einfaches 'Print-Statement' geschrieben.
hObject.dropdownenvironment (Tag-Name des Drop-Down Menüs) soll die entsprechenden Werte holen.
Code:
.....
% --- Executes on selection change in dropdownenvironment. function dropdownenvironment_Callback(hObject, eventdata, handles) % hObject handle to dropdownenvironment (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)
% --- Executes on button press in displaybutton. function displaybutton_Callback(hObject, eventdata, handles) % hObject handle to displaybutton (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)
Jedoch bekomme ich die folgende Fehlermeldung. Anscheinend stimmt die Referenz hObject.dropdownenvironment nicht. Wenn ich die Werte innerhalb der dropdownenvironment_Callback Funktion anzeigen lasse (siehe (color=blue)..(/color)), werden sie korrekt ausgegeben im Command Window.
Zitat:
Attempt to reference field of non-structure array.
Error in Test>displaybutton_Callback (line 109)
dropdownlist = cellstr(get(hObject.dropdownenvironment, 'String'));
Error in gui_mainfcn (line 96)
feval(varargin{:});
Error in Test (line 42)
gui_mainfcn(gui_State, varargin{:});
Error in
@(hObject,eventdata)Test('displaybutton_Callback',hObject,eventdata,guidata(hObject))
Error while evaluating uicontrol Callback
Zuletzt bearbeitet von clustering_n00b am 30.10.2012, 15:23, insgesamt einmal bearbeitet
handles enthält die Handles auf alle Elemente einer GUI.
hObject ist das Handle auf das Element der GUI, aus dem der Callback getriggert wurde. Je nach Stelle im Code kann hObject also beispielsweise den Wert von handles.dropdownenvironment oder den Wert von handles.displaybutton annehmen.
Ich persönliche arbeite bevorzugt mit der Handles-Struktur.
Ja, dann ist alles klar - vielen Dank nochmals, Harald!
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
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.