Softwareentwickler MATLAB/Simulink (w/m) Erarbeitung von Lösungen im Bereich der Schnittstelle zum Simulink-Modell und der Benutzeroberfläche von TargetLinkdSPACE GmbH - Paderborn
Verfasst am: 15.06.2010, 11:47
Titel: Popup Menü, von User füllen lassen, Wertübergabe
Hallo,
ich habe lange gebastelt um ein lauffähiges Programm nach meinen Wünschen zu gestalten. Vielleicht kann es ja auch jemand von euch gebrauchen.
Erstmal eine kurze Erklärung:
Es wird eine GUI geöffnet (wird mittels guide erstellt), diese beinhaltet ein Popup-Menü (mit den Werten 1, 2, 3, anderer Wert), ein Static Textfeld, da soll dann durch Klicken eines Pushbuttons der ausgewählte Wert aus dem Popup-Menü angezeigt werden.
Wenn der User im Popup Menü "anderer Wert" auswählt, wird er aufgefordert eine Eingabe zu machen. Diese steht dann unter den bisherigen Werten im Popup Menü und ist auch aktuell angewählt. Außerdem steht wieder an letzter Stelle im Popup Menü "anderer Wert".
% Textfeld auch gleich mal initialiseren: set(handles.text1, 'String', handles.wert);
% Daten für die anderen Funktionen auch verfügbar machen guidata(hObject, handles);
In der Callback Funktion des Popup Menüs:
Code:
% hier nochmal die Werte auslesen, weil wenn man sie verändert, bleiben % Werte aus OpeningFcn trotzdem gleich... % Zeugs aus Popup Menü:
handles.val = get(handles.popupmenu1, 'Value');
handles.str = get(handles.popupmenu1, 'String');
handles.wert = handles.str{handles.val};
% im Popup Menü gibt es den Eintrag: anderer Wert % wird das ausgewählt, soll der User eine Eingabe machen, die dann im % Popup-Menü steht und als aktueller Wert weiterverarbeitet werden soll % weiterhin soll der eingegebene Wert unter den vorhirgen Werten stehen und % am Schluss wieder "anderer Wert" ifstrcmpi(handles.wert, 'anderer Wert')
handles.str(handles.val) = [];
eingabe = inputdlg({'Eingabe: '}, '', 1, {''});
anderer_wert = eingabe{1};
str_neu = [handles.str; anderer_wert; 'anderer Wert'];
set(handles.popupmenu1, 'Value', 1);
set(handles.popupmenu1, 'String', str_neu);
set(handles.popupmenu1, 'Value', handles.val);
so vom Code überfliegen, sehr schönes Beispiel - findet bestimmt den einen oder anderen Anwendungsbereich
Danke!
Gruß
Alex
_________________
>> I told me to.
____________________________________
goMatlab-Knigge - dran gehalten?!
Schon in den FAQ gesucht?
Ist vielleicht bei den Skripten oder den Tutorials was für dich dabei?
Options and Permissions
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.