Verfasst am: 22.06.2011, 06:16
Titel: Plotauswahlfenster bei GUI
Moin zusammen,
ich programmier gerade eine GUI. Im Programm wird eine 2. GUI aufgerufen, die mehrere Plots (ca. 25) per Pushbutton darstellt. Da diese Kurven ziemlich nah beieinander liegen, ist nur schwer festzustellen welche Kurve welchen Verlauf hat. Nun möchte ich, dass bei der Legende Auswahlhaken angezeigt werden, um die jeweiligen Kurven ein- bzw. ausblenden zu können.
Ich habe dies auch schon über eine figure-Darstellung mit plotbrowser ausprobiert. Hier war aber das Problem, dass meine 1. Haupt-GUI ebenfalls editierbar wurde.
Kann mir jemand weiterhelfen?
Normalerweise sollte das in einem figure-Fenster Problemlos gehen. Wenn du nichts weiter machen willst als die Achsen ein- und ausschalten würde ich das auch machen.
Meiner Meinung müsste das in der GUI eigentlich auch gehen, hab ich jetzt aber nicht ausprobiert.
da müsstest du bei axes statt gca eben das handle des Achsensystems deiner GUI angeben.
es öffnet sich auch der Plotbrowser, nur kann ich dann die Haken nicht aus- bzw- einblenden. Und wenn ich einen zweiten pushbutton drücken möchte, ist dieser nicht mehr aktiv, sprich es kommt ein Verschiebekreuz...
Also ich hab das gerade mal bei einer vorhandenen GUI von mir Probiert.
Das Problem ist wohl dass dieser plotbrowser nur auf die ganze figure bezogen arbeitet, nicht nur auf eine axes.
Funktioniert hat es bei mir aber.
Im plotbrowser erscheinen alle axes der GUI in die jeweiligen plots.
Wenn nichts anderes mit den plots gemacht werden soll als ein- und ausschalten einzelner Kennlinien würde ich es in einem normalen figure-Fenster plotten und darin den plotbrowser öffnen.
BlackIvory
Gast
Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
Verfasst am: 22.06.2011, 08:31
Titel:
Alles klar Mawi,
danke für dein Engagement, dann werd ich das mal so ausprobieren.
Wenn nicht, melde ich mich nochmal
Das k muss dann dem Handle der Linie entsprechen, die du mit der jeweiligen Box ausblenden willst.
Viel Erfolg.
Georg
BlackIvory
Gast
Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
Verfasst am: 22.06.2011, 16:15
Titel:
Hi Georg,
ok, wenn ich das richtig verstehe, kann ich dann die Kurven NUR ausblenden, einblenden funktioniert dann ja nicht mehr oder?
Außerdem müsste ich dann für jede kurve (insgesamt 24) einen push-button anlegen oder?
ich würde einfach gern, wie der plotbrowser das normalerweise macht, bei meiner gui ein auswahlfenster eingeblendet bekommen um gewünschte kurven ein-& ausblenden zu können.
Ich hab es nicht ganz deutlich notiert.
Als Callback sollte dann eine Funktion aufgerufen werden, welche je nach Wert der Box (Haken gesetzt oder nicht) die Befehle
ausführt. Und ja, du müsstest für jede Kurve eine Checkbox anlegen. Aber das kannst du einfach in einem for-loop machen. Etwa wie
Code:
dy = 5; % Pixelverschiebung für die nächste Checkbox for iii = 1:length(h_line)% h_line ist ein vektor mit den handles der Kurven aus dem plot-Befehl
h_box(iii)=uicontrol('Style', 'checkbox', 'String', sprintf('Kurve %0.0f',iii),...
'Position', [400400+dy 5015], 'Callback', 'set_visibility(h_box(iii),h_line(iii))');
dy = dy + 15;
end
Ah ok, hab mir sowas in der Art schon gedacht.
Hat mich nur verwirrt als ich das im Command Window ausprobiert hatte und dort so komische Kommazahlen ausgegeben wurden.
Aber danke nochmals...
Weiterhin gutes Programmieren an alle!!!
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
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.