|
|
Ändern eines stat. Textfeldes in Abhängigkeit von Popup-Au |
|
teutopixx |
Forum-Fortgeschrittener
|
|
Beiträge: 77
|
|
|
|
Anmeldedatum: 09.03.11
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 09.03.2011, 11:50
Titel: Ändern eines stat. Textfeldes in Abhängigkeit von Popup-Au
|
|
|
|
|
Als Neuling beim Erstellen eines GUI's mit Matlab habe ich ein kleines Problem.
Vielleicht auch nur eine Denkblockade -
Das GUI wurde mit guide erstellt. Dort habe ich nun ein Popupmenü und ein statisches Textfeld, dass sich je nach Auswahl im
Popup-Menü ändern soll...im Prinzip nicht schwer.
Allerdings sollen in dem Popup-Menü die Namen von Analogmodulen eines cDAQ angezeigt werden.
Dieses habe ich auch realisiert, indem ich die OpeningFcn folgendermaßen verändert habe:
Hier taucht schon die erste Frage auf: Wenn ich d = daq.getDevices ganz normal in der Kommandozeile eingebe, legt er sie als
Variable im Workspace ab. Beim Starten des GUI jedoch nicht.
Um nun in einem statischen Textfeld den Test je nach Auswahl im Popup-Menü zu ändern, gehe ich wie folgt vor.
In der CallbackFcn des Popupmenü ergänze ich folgenden Code:
Soweit so gut...
Nur bekomme ich es irgendwie nicht hin, die oben schon verwendeten Namen der Analog-Module (also das, was z. B. in d(1,4).Description steht, in dem statischen Text anzeigen zu lassen.
Ich dachte, es würde z. B. ganz einfach gehen mit:
Wenn ich dieses eingebe, erscheint im statischen Textfeld eine Zahl (11.0194) ... aber kein Text.
Warum?! Und wie kann ich Variablen dauerhaft ablegen, dass ich sie im Workspace sehe?
_________________
----
teutoPIXX
|
|
|
|
|
Marco H. |
Forum-Guru
|
|
Beiträge: 404
|
|
|
|
Anmeldedatum: 12.11.10
|
|
|
|
Wohnort: Dortmund
|
|
|
|
Version: 2010a/2012b
|
|
|
|
|
|
Verfasst am: 09.03.2011, 12:57
Titel:
|
|
Hi,
Zitat: |
Hier taucht schon die erste Frage auf: Wenn ich d = daq.getDevices ganz normal in der Kommandozeile eingebe, legt er sie als Variable im Workspace ab. Beim Starten des GUI jedoch nicht.
|
Das passiert schon nur im WB der Funktion. Der Matlab Desktop WB hat damit nix zu tun. Jede Funktion hat ihren eigenen WB. Da gibs natürlich auch wieder Ausnahmen (z.B. Nested Funktions). Das solltest du dir vll mal in der Matlabhilfe anschauen... Du kannst dir dies beim Debuggen anschauen...
Den String des Popupmenus bekommst du wie folgt:
Zitat: |
Und wie kann ich Variablen dauerhaft ablegen, dass ich sie im Workspace sehe?
|
Das würde ich nicht machen, da du alles innerhalb deiner Callbacks regeln kannst. Zudem wird es dann unübersichtlich... Du kannst natürlich mittels setappdata bzw. guidata deine Daten Zwischenspeichern (wenn du z.B. meherere Guis offen hast, die miteinander kommunizieren sollen)
MfG Marco
|
|
|
ste99947 |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 09.03.2011, 13:05
Titel:
|
|
Hallo,
1. Die Matlab-Hilfe zu GUIs und GUIDE lesen!
2.
Zitat: |
Hier taucht schon die erste Frage auf: Wenn ich d = daq.getDevices ganz normal in der Kommandozeile eingebe, legt er sie als Variable im Workspace ab. Beim Starten des GUI jedoch nicht. |
Die Variable wird im lokalen Workspace der aufrufenden Funktion (hier die OpeningFcn) erstellt. Wenn du in auf die Zeile einen Breakpoint setzt wird es sichtbar. Um ausserhalb der aufrufenden Funktion auf die Variable zugreifen zu können musst du sie z.B. über die handles-Struktur exportieren. z.B.:
3.
handles.popup ist das handle auf das Popup
Du möchtest den dazugehörigen string haben. Also:
viel Spass
Stephan
|
|
|
teutopixx |
Themenstarter
Forum-Fortgeschrittener
|
|
Beiträge: 77
|
|
|
|
Anmeldedatum: 09.03.11
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 09.03.2011, 15:03
Titel:
|
|
Herzlichen Dank!
Das funktioniert soweit ganz gut!
Noch eine anschliessende Frage:
Gibt es eine einfache Möglichkeit, in einem Popup-Menü die Zahlen einer Variable aufsteigend anzeigen zu lassen?
Z. B. habe ich zwei Popup-Menüs, und 2 Variablen. In der einen Variable steht als "1x1 double" der Wert 6 und in der anderen der Wert 4. Diese Werte können sich durchaus mal ändern. Also soll auch das Popup-Menü dementsprechend die Werte anzeigen.
_________________
----
teutoPIXX
|
|
|
Marco H. |
Forum-Guru
|
|
Beiträge: 404
|
|
|
|
Anmeldedatum: 12.11.10
|
|
|
|
Wohnort: Dortmund
|
|
|
|
Version: 2010a/2012b
|
|
|
|
|
|
Verfasst am: 10.03.2011, 08:46
Titel:
|
|
Hey,
Zitat: |
Gibt es eine einfache Möglichkeit
|
was heist einfach? Ich denke du könntest mittels sprintf die Zahlen und Strings in ein cellarray mit strings schreiben, welches du dann den popupmenus übergibst...
MfG Marco
|
|
|
ste99947 |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 11.03.2011, 10:17
Titel:
|
|
Hi,
einfach nur den Inhalt eines popups ändern geht auch wieder mit set.
Automatisch eine Aktion auslösen, wenn sich eine Variable verändert geht glaube ich nicht. Da musst du MATLAB schon mitteilen das etwas passieren soll.
Grüße
Stephan
|
|
|
teutopixx |
Themenstarter
Forum-Fortgeschrittener
|
|
Beiträge: 77
|
|
|
|
Anmeldedatum: 09.03.11
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 11.03.2011, 10:35
Titel:
|
|
Also so ganz verstanden hab' ich die Lösungsansätze glaub ich noch nicht.
Ich habe in einer Variablen "meineVariable" die einfache Zahl "6" stehen.
Und nun soll mir das Popup-Menü die Zahlen von 0-5 zur Auswahl anzeigen.
Sollte irgendwann in der Variablen ein anderer Wert stehen, so soll das Popup-Menü entsprechend andere Zahlen anzeigen. Z. B. steht beim nächsten Start des GUI in der Variabe "meineVariable" die Zahl 8, dann soll das Popup-Menü die Zahlen 0-7 anzeigen.
Bei der Lösung des Problems stehe ich irgendwie auf dem Schlauch.
_________________
----
teutoPIXX
|
|
|
teutopixx |
Themenstarter
Forum-Fortgeschrittener
|
|
Beiträge: 77
|
|
|
|
Anmeldedatum: 09.03.11
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 11.03.2011, 10:55
Titel:
|
|
Mit dem Lösungsansatz von ste99947 könnte ich es doch folgendermaßen machen:
_________________
----
teutoPIXX
|
|
|
|
|
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.
|
|