|
|
"dynamisches" Popupmenu direkt beim Aufruf der GUI |
|
Vesuv |
Forum-Anfänger
|
|
Beiträge: 32
|
|
|
|
Anmeldedatum: 08.07.15
|
|
|
|
Wohnort: Baden-Württemberg
|
|
|
|
Version: R2016b
|
|
|
|
|
|
Verfasst am: 06.08.2015, 13:04
Titel: "dynamisches" Popupmenu direkt beim Aufruf der GUI
|
|
|
|
|
Hallo,
ich habe bereits mit google und anderen Beiträgen hier versucht mein Problem zu lösen, bin allerdings leider erfolglos geblieben.
Vielleicht liegt es daran, dass ich bei den GUIs noch nicht ganz durchblicke..
Ich möchte gerne ein "dynamisches" Popupmenu erstellen. Im Gegensatz zu den anderen Beiträgen, möchte ich nicht erst durch einen Button ein Popupmenu starten.
Wenn ich mein Programm starten will, rufe ich die GUI auf und kann dann einige Einstellungen treffen, bevor ich es starte. Dabei möchte ich gerne dem Benutzer die Wahl zwischen bestimmten Strings treffen lassen. Das Problem ist nun, dass sich die Liste dieser Strings jedes Mal wenn ich das Programm durchlaufen lasse, ändert. Ich würde nun am ende des Programmes z.B einen cell-array entwerfen, in dem die Strings stehen und diesen in den Ordner speichern.
n-ter Durchlauf:
n+1 ter Durchlauf:
Jetzt möchte ich, dass bei Aufruf der GUI dieser Cellarray abgefragt wird und alle Strings als mögliche Auswahl in dem Popupmenu stehen. uicontrol() bringt mich ja nicht weiter... will ja nichts entwerfen..
versucht habe ich z.B ( in der Callback-funktion, ich hoffe das war nicht total falsch..).
das ist ein kläglicher Versuch ich weiß, aber ich bin einfach noch nicht so lange dabei, und immerhin habe ich etwas versucht
_________________
never touch a running system!
|
|
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.495
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 06.08.2015, 15:37
Titel:
|
|
Hallo,
Was beim Öffnen der GUI passieren soll, sollte in die OpeningFcn.
Eine Möglichkeit wäre tatsächlich, in der OpeningFcn eine weitere, "kleine" GUI zur Auswahl von Möglichkeiten für die "große" GUI zu starten und die Änderungen von dort zu übernehmen.
Zitat: |
Das Problem ist nun, dass sich die Liste dieser Strings jedes Mal wenn ich das Programm durchlaufen lasse, ändert. |
Wie wird diese Liste denn bestimmt bzw. erstellt?
Grüße,
Harald
|
|
|
Vesuv |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 32
|
|
|
|
Anmeldedatum: 08.07.15
|
|
|
|
Wohnort: Baden-Württemberg
|
|
|
|
Version: R2016b
|
|
|
|
|
|
Verfasst am: 06.08.2015, 16:17
Titel:
|
|
|
|
|
Hallo Harald,
erst einmal vielen dank für deine Antwort, das hat mich schon einmal ein ganzes Stück weiter gebracht!
Zitat: |
Was beim Öffnen der GUI passieren soll, sollte in die OpeningFcn.
|
Das war also mein erster Fehler! Bei einem einfachen cellarray á la
funktioniert das Ganze jetzt auch, aber nicht mit dem cellarray, welcher im workspace gespeichert wurde
kurze Fehlermeldung:
dabei habe ich momentan laut Matlab einen choose_string: {6x1 cell} vorliegen...
Zitat: |
Eine Möglichkeit wäre tatsächlich, in der OpeningFcn eine weitere, "kleine" GUI zur Auswahl von Möglichkeiten für die "große" GUI zu starten und die Änderungen von dort zu übernehmen.
|
Das soll ich wohl vermeiden. Es hieß " mach so ein fenster das runterscrollt", daraus habe ich geschlossen, dass es ein Popupmenü werden soll
Zitat: |
Wie wird diese Liste denn bestimmt bzw. erstellt?
|
Ich schreibe mit meinem Programm in eine Textdatei, diese Textdatei wird pro durchlauf immer wieder erweitert! Darin steht unter anderem ein Titel. Da diese textdatei allerdings auch außerhalb von Matlab bearbeitet werden kann ( was eigentlich vermieden werden soll, aber man weiß ja nie ), will ich immer am Ende des Durchlaufes noch einmal alle Titel rauslesen und in einen cellarray speichern, damit wird der Fehler in einem tolerierbaren Bereich gehalten. Bevor der Benutzer das Programm nun startet soll er einen bereits vorhandenen Titel aussuchen --> dafür das popupmenu
_________________
never touch a running system!
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.495
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 06.08.2015, 16:31
Titel:
|
|
Hallo,
wenn genau ein Titel ausgewählt werden soll, bietet sich
an.
Ansonsten:
erstellt eine Struktur, in die die Variable gepackt wird. Du wolltest wahrscheinlich eher
Grüße,
Harald
|
|
|
Vesuv |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 32
|
|
|
|
Anmeldedatum: 08.07.15
|
|
|
|
Wohnort: Baden-Württemberg
|
|
|
|
Version: R2016b
|
|
|
|
|
|
Verfasst am: 06.08.2015, 16:36
Titel:
|
|
ich habs auch gerade gesehen
es ist ein bisschen eklig, weil nach mir niemals jemand diesen Code debuggen darf. Ich habe jetzt einfach
weil ich ja weiß, dass der cellarray in dem matfile so heißt
Ich hoffe, dass die Namensgebung möglichen Debuggern das Leben erleichtert, aber ich muss dann einfach nur dafür sorgen, dass ich weit genug weg bin XD
Vielen, vielen Dank!! Jetzt funktioniert es und sieht total beeindruckend aus ich könnte in die Kommentare irgendwo ein " Danke Harald" einpflegen
_________________
never touch a running system!
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.495
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 06.08.2015, 18:11
Titel:
|
|
Hallo,
schön, dass ich helfen konnte :)
Wenn du gerne eine sauberere Variante möchtest:
Du könntest schließlich noch mit cellstr abfragen, ob data.choose_string ein Cell Array von Strings ist.
Grüße,
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
|
|
Impressum
| Nutzungsbedingungen
| Datenschutz
| FAQ
| 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.
|
|