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

ToolbarIcons in axes darstellen

 

DSP
Forum-Meister

Forum-Meister



Beiträge: 2.117
Anmeldedatum: 28.02.11
Wohnort: ---
Version: R2014b
     Beitrag Verfasst am: 02.03.2016, 11:09     Titel: ToolbarIcons in axes darstellen
  Antworten mit Zitat      
Hallo goMatlab Forum,

beim Starten meiner GUI rufe ich eine axes CreateFcn auf, welche wie folgt aussieht.

Code:

% initial Plot on Signalviewer startup - show some Informations
    function PlotInit_CreateFcn(hObject, ~)
        % Init graph        
        handles.Data.hLineS = plot(hObject,1:10,ones(1,10),...
                                           1:10,ones(1,10),...
                                           1:10,ones(1,10),...
                                           1:10,ones(1,10));
                                       
        % axis limits                              
        axis(hObject,[1 10 0 1])  
       
        % hide signals
        set(handles.Data.hLineS(1),'Visible','off')
        set(handles.Data.hLineS(2),'Visible','off')
        set(handles.Data.hLineS(3),'Visible','off')
        set(handles.Data.hLineS(4),'Visible','off')        
               
        % show information
        info = sprintf(['Information:\n\n' ...
                        ' - Signal(e) in Signalliste 1 laden\n'...
                        ' - Signalliste 1/2 leeren\n'...
                        ' - Signalreihenfolge ändern bzw. Signal 1 oder 2 ausblenden\n'...
                        ' - Zeige Dualcursor\n'...
                        ' - Maximum Peaks darstellen\n'...
                        ' - Minimum Peaks darstellen\n   Ein Peak kann in der Tabelle angeklickt werden und erhält dann im Plot ein Datalabel \n']);
       
        handles.Data.hInfoText = text(2,0.7,info,...
                                    'Tag','InfoText',...
                                    'FontSize',12,...
                                    'FontWeight','bold',...
                                    'Color',handles.Color.FontColor,...
                                    'BackgroundColor',handles.Color.BackgroundGrey);                              
       
    end
 


Nun würde ich gern links neben den Trennzeichen "-" das jeweilige Icon (16x16x3 double) darstellen. Es soll also eine Art Legende zusehen sein, welche kurz die Funktion einiger Buttons erklärt. Allerdings fehlt mir momentan eine Idee wie ich es umsetzen kann. Notlösung wäre sonst uicontrol Buttons zu erstellen, die jedoch ohne Funktion sind und später ausgeblendet werden. Aber evtl. gibt es ja auch eine Lösung, wodurch ich nur die Icons plotten muss.

Wäre super wenn mir jemand einen Tipp geben kann!

Vielen Dank und Gruß

DSP

GUI_showInfo.png
 Beschreibung:

Download
 Dateiname:  GUI_showInfo.png
 Dateigröße:  116.61 KB
 Heruntergeladen:  260 mal
Private Nachricht senden Benutzer-Profile anzeigen


Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 02.03.2016, 12:09     Titel: Re: ToolbarIcons in axes darstellen
  Antworten mit Zitat      
Hallo DSP,

Ich verstehe noch nicht, wo Du die Icons darstellen möchtest. Hilft der gezeigte Code da weiter? Was bedeutet "eine Art Legende"?
Icons kannst per image Befehl anzeigen lassen.

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
DSP
Themenstarter

Forum-Meister

Forum-Meister



Beiträge: 2.117
Anmeldedatum: 28.02.11
Wohnort: ---
Version: R2014b
     Beitrag Verfasst am: 02.03.2016, 12:26     Titel:
  Antworten mit Zitat      
Hallo Jan,

in der GUI werden die ToolbarIcons geladen und dann die Toolbar erzeugt (siehe Screenshot):

Code:


% load toolbar icons
handles.ToolbarIcons = struct2cell(load('ToolbarIcons.mat'));

...

% create toolbar
handles.Toolbar = uitoolbar(...');
% ToolbarIcon 1 = gelbes Ordner Symbol
handles.OpenFile = uipushtool(...
'Parent',handles.Toolbar,...
'CData',handles.ToolbarIcons{1,1}{1,1},...
...);

...


handles.OpenFile.CData enthält das Icon als 16x16x3 double Matrix welches nun links neben diesem Text dargestellt werden soll:

Code:
ToolbarIcons{1,1}{1,1} ' - Signal(e) in Signalliste 1 laden\n'

Entsprechend für die folgenden Textzeilen welche hier

Code:
% show information
        info = ...


mit einem - beginnen, soll auf dieser Höhe links daneben das jeweils dazu passend Icon zu sehen sein.

Ist es jetzt verständlich?

Gruß DSP

GUI_showInfoII.png
 Beschreibung:

Download
 Dateiname:  GUI_showInfoII.png
 Dateigröße:  78.15 KB
 Heruntergeladen:  254 mal
Private Nachricht senden Benutzer-Profile anzeigen
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 02.03.2016, 15:43     Titel:
  Antworten mit Zitat      
Hallo DSP,

Du könntest den Text als HTML schreiben und so einfach formatieren. Die Anzeige erfolgt dann z.B. mit http://undocumentedmatlab.com/blog/rich-matlab-editbox-contents oder http://undocumentedmatlab.com/blog/gui-integrated-html-panel.

Die Icons per image zu setzen funktioniert zwar auch, aber die Positionierung ist eine arge Pfriemelei.

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
DSP
Themenstarter

Forum-Meister

Forum-Meister



Beiträge: 2.117
Anmeldedatum: 28.02.11
Wohnort: ---
Version: R2014b
     Beitrag Verfasst am: 02.03.2016, 18:29     Titel:
  Antworten mit Zitat      
Hallo Jan,

vielen Dank für deinen Tipp. Das wäre durchaus von der Umsetzung her eine gute Lösung. Allerdings gefällt mir es mir vom Aussehen her deutlich besser, wenn die Icons auf einem echten Button angezeigt werden. Daher werde ich die Buttondummies in eine uibuttongroup packen und diese verstecken, wenn sie nicht angezeigt werden soll.

Gruß DSP
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 - 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.