WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

GUI mit sich gegenseitig beeinflussenden Pop-Up-Menüs

 

T3-Andi
Forum-Newbie

Forum-Newbie


Beiträge: 1
Anmeldedatum: 01.02.17
Wohnort: München
Version: ---
     Beitrag Verfasst am: 01.02.2017, 13:47     Titel: GUI mit sich gegenseitig beeinflussenden Pop-Up-Menüs
  Antworten mit Zitat      
Hallo zusammen,

bin neu hier im Forum und recht neu in Sachen MATLAB. Habe nun einige Stunden mit Recherchen verbracht und auch hier im Forum viel gelesen... habe dennoch nichts gefunden, was mich mit meiner Problematik weiter bringt.

Darum hoffe ich sehr, dass ich hier Hilfe finde! Wink


Meine Aufgabenstellung (ich versuche mich kurz zu fassen):


Ich soll u.A. eine GUI für ein Produktentwicklungstool erstellen. Darin soll der Anwender seine gewünschten Auswahlen über diverse Pup-Up-Menüs (bzw. Drop- Down) treffen können.

Ich möchte allerdings diese Menüs so miteinander koppeln, dass bereits getroffene Auswahlen die Auswahlmöglichkeiten anderer Menüs nach einem vordefinierten Regelwerk (Realtionsmatrix) einschränken.


Beispiel:

Menü 1 beinhaltet die Varianten A,B und C des Bauteils 1.
Menü 2 beinhaltet die Varianten x,y und z des Bauteils 2.

Mögliche Kombinationen der Bauteile laut Regelwerk:

A: x oder z
B: x oder y
C: y oder z


Zu Beginn sollen beide Menüs alle jeweiligen zur Auswahl stehenden Varianten im String enthalten und anzeigen können.

Wählt man nun z.B. im Menü 1 die Variante B aus, so soll das zweite Menü nur noch die Varianten x und y als mögliche Auswahlen anzeigen.

Der neue String beinhaltet also {'x', 'y'}


Meine Idee zur Umsetzung des Vorhabens ist, in Excel eine Relationstabelle zu erstellen, welche die Varianten als Zeile, bzw. Spalte gegenüberstellt und über 0- und 1- Einträge miteinander verknüpft, bzw. ausschließt. (Siehe Beispieltabelle.jpg)


MATLAB soll zum einen die Varianten auslesen und zum anderen anhand der true/ false- Korrelationen Strings erstellen.


Jetzt stellt sich für mich eben die Frage, wie ich das in MATLAB umsetzte.


Bisher habe ich es ohne eine solche Tabelle gelöst:

Code:
function popM1_callback(hObject,eventdata)
        handles = guidata(hObject);
       
       
       str = get(findobj('Tag','m1'),'String');
       val = get(findobj('Tag','m1'),'Value');
       M1 = str{val};
      set(handles.textbox,'String', M2);
     
        switch M1
           
            case '-'
            set(handles.popM2,'String', {'-','x','y','z'});
           
            case 'A'
            set(handles.popM2,'String', {'x','y'});
           
            case 'B'
            set(handles.popM2,'String', {'y','z'});
           
            case 'C'
            set(handles.popM2,'String', {'x','z'});
           
            otherwise
           set(handles.popM2,'String', '-');
           
           guidata(hObject, handles);
           
        end
       
    end



Das funktioniert zwar, ist allerdings nicht zielführend.
Zum einen möchte ich die Möglichkeit offen lassen, dass man die Relationen zwischen den Varianten nachträglich ändern kann, ohne in den GUI- Code eingreifen zu müssen, und zum anderen sind die schlussendlich relevanten Relationen wesentlich zahlreicher und unübersichtlicher als in diesem einfach Beispiel.


So... ich hoffe, ich konnte meine Frage verständlich formulieren... bin da nicht so der Held drin Razz

Ich danke schon mal herzlich für Ideen/ Anregungen, usw!

Gruß, Andi

Beispieltabelle.jpg
 Beschreibung:

Download
 Dateiname:  Beispieltabelle.jpg
 Dateigröße:  10.48 KB
 Heruntergeladen:  378 mal
Private Nachricht senden Benutzer-Profile anzeigen


Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

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 | goMatlab RSS Button 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.