|
|
Ausgabe von Werten aus Edit und Popupmenu |
|
Sebastian Kling |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 12.01.2011, 17:00
Titel: Ausgabe von Werten aus Edit und Popupmenu
|
|
|
|
|
Guten Abend,
ich habe ein Programm in Matlab geschrieben. Man gibt unterschiedliche Parameter ein (Zahlen) und Matlab liest mit diesen aus verschiedenen DIN Tabellen andere Werte raus. Das funktioniert in der Matlabkonsole super.
Ich schildere mal ein vereinfachtes Beispiel:
Es wird nach einer Eissorte gefragt und man muss dann Zahlen eingeben: 1 (Schokolade), 2 (Vanille) oder 3 (Erdbeere).
Dieses will ich in der GUI mittels popupmenu abfragen. Also im Popupmenu sollen die 3 Eissorten zur Auswahl stehen und je nach Eissorte soll dann die Zahl 1, 2 oder 3 einer Variablen zugewiesen werden.
Das vereinfachende Beispiel habe ich mal als Datei angehangen, die mein Problem halbwegs darstellt.
Weiter wird noch z. B. die Anzahl der Kinder abgefragt. Da hier nur eine bestimmte Anzahl möglich ist, soll das auch per popupmenu geschehen. Die Anzahl der Kinder soll dann genauso als Variable ausgegeben werden.
Und als letztes kann man dann auch noch die Anzahl der Eiskugeln per Hand eintragen und dieser Wert soll auch als Variable ausgegeben werden.
Ich hoffe, dass ich mich halbwegs klar ausgedrückt habe!
Ich bin Matlab-Neuling und war schon froh, dass der Code in der Konsole funktioniert. Bei der grafischen Oberfläche haben die einfachsten Tutorials nichts gebracht!
Über eure Hilfe wäre ich sehr froh.
Beschreibung: |
|
Download |
Dateiname: |
eis.fig |
Dateigröße: |
3.24 KB |
Heruntergeladen: |
563 mal |
|
|
|
|
|
And r é |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 12.01.2011, 17:33
Titel:
|
|
|
|
|
Hallo Sebastian,
ich hoffe dir hiermit helfen zu können (auch wenn ich mir die .fig gerade auf die schnelle nicht angeschaut hab).
Ich nehme an der GUI-guide ist bereits geöffnet und du hast bereits ein Pop-Up ins Feld gezogen. Zum Ansprechen des Pop-Up brauchst du den "Tag". Klicke doppelt auf das Pop up und du kannst diesen im Property Inspector lesen.
Jetzt musst du rechts klicken und auf "M-File-Editor". Hier sind die ganzen Aufrufe.
Jetzt suche die allererste Funktion. Diese heißt ungefähr so
function namederfunktion_OpeningFcn (hObject, eventdata, handles, varargin)
Darunter kannst du jetzt z.B. festlegen, was von grundsätzlich als Möglichkeiten deiner Pop-Ups ausgewählt werden kann.
Das funktioniert so:
set(handles.popupmenueisauswahl,'String',{'Vanille', 'Schokolade','Kirsche'});
Übersetzt heißt das: Ich greife auf das Handle Popupmenueisauswahl zu, was immer der "Tag" ist und "setze" für den String folgendes Array "Vanille...."
Jetzt wenn du das Programm laufen lässt, kannst du schon mal auswählen.
Um das jetzt auslesen zu lassen, kannst du einfach den Befehl "get" nutzen.
Du brauchst z.B. ein Pushbutten um deine GUI zu starten oder die Ausgabe zu starten.
Also ziehe einen Pushbutton rein, öffne das M-File und suche die Callback-Function mit dem Tag von dem Pushbutton.
Darunter kannst du jetzt schreiben, was ausgeführt werden soll, wenn du diesen drückst.
z.B. disp('Hallo')
also wenn du auf den Button drückst wird "Hallo" im Command Window dargestellt.
in deinem Fall machst du eben
nummer=get(handles.popupmenueisauswahl,'Value') -> er holt sich je nachdem was gewählt ist die Zahl 1 oder 2 oder 3 (er weißt jeder Eissorte Vanille, Schoko usw einen 'Value' zu)
dann
eissorten=get(handles.popupmenueisauswahl,'String') -> er holt scih Vanille, Schoko, Kirsche
und um das passende darzustellen machst du schließlich
disp(eissorten(nummer))
es geht bestimmt auch einfacher, aber so sollte es funktionieren.
Solltest du das Ergebnis nicht im Command Window darstellen wollen sondern wiederum in ein Textfeld der GUI schreiben wollten machst du eben anstatt disp(eissorten(nummer)):
set(handle.tagvondemreinzuschreibendemfeld,'String',eissorten(nummer))
und alles direkt unter die Funktion Pushbutton.
So, ich hoffe ich konnte dir behilflich sein.
Viele Grüße und einen schönen Abend,
André
|
|
|
Sebastian Kling |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 14.01.2011, 14:41
Titel:
|
|
Vielen Dank André für deine rasche Antwort!
Ich habe das jetzt so angewandt und es funktioniert! Zumindest bei der Abfrage der Eissorte. Schokolade=1, Vanille=2 und Erdbeere=3.
Das Edit Feld (Anzahl der Eiskugeln) habe ich auch hinbekommen. Und zwar mit
Ich finde das aber etwas umständlich. Kann man die Eingabe nicht direkt als Value definieren?
Probleme habe ich noch bei der Anzahl der Kinder! Bei dem Beispiel ist es etwas abwägig, aber nehmen wir an, dass ich in dem popupmenu 5.0, 4.5, 4.0 stehen haben will. Diese Werte sollen dann auch so als Variable übernommen werden!
Ich habe folgendes versucht:
Aber es will nicht klappen.
In der Opening function ist die ANzahl der Kinder auch als string definiert. Das muss doch irgendwie einfacher gehen.
Gruß
Basti
|
|
|
Gast |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 14.01.2011, 15:00
Titel:
|
|
|
|
|
|
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.
|
|