Listbox e colori

di il
4 risposte

Listbox e colori

Ciao a tutti è possibile cambiare il colore di una singola riga della mia listbox?

4 Risposte

  • Re: Listbox e colori

    Purtroppo non è possibile settare il colore di una singola riga di un a listbox.

    Data una listbox con "tag", ad esempio, "my_listbox_1". quello che si può fare è specificare quale riga "evidenziare" come "selezionata" (anche se la stessa non viene effettivamente selezionata) con l'istruzione
    set(handles.my_listbox_1,'value',3)
    in questo caso viene "selezionata" (evidenziata) la riga numero 3

    Più in generale, puoi ottenere l'elenco delle proprietà della listbox che possono essere modificate con l'istruzione "get"
    get(handles.my_listbox_1)
    che ritorna:
            get(handles.my_listbox_1)
    
    	BackgroundColor = [1 1 1]
    	Callback = [ (1 by 1) function_handle array]
    	CData = []
    	Enable = on
    	Extent = [ (1 by 4) double array]
    	FontAngle = normal
    	FontName = MS Sans Serif
    	FontSize = [8]
    	FontUnits = points
    	FontWeight = normal
    	ForegroundColor = [0 0 0]
    	HorizontalAlignment = center
    	KeyPressFcn = 
    	ListboxTop = [1]
    	Max = [1]
    	Min = [0]
    	Position = [ (1 by 4) double array]
    	String = [ (5 by 1) cell array]
    	Style = listbox
    	SliderStep = [0.01 0.1]
    	TooltipString = 
    	Units = characters
    	Value = [1]
    
    	BeingDeleted = off
    	ButtonDownFcn = 
    	Children = []
    	Clipping = on
    	CreateFcn = [ (1 by 1) function_handle array]
    	DeleteFcn = 
    	BusyAction = queue
    	HandleVisibility = on
    	HitTest = on
    	Interruptible = on
    	Parent = [346.002]
    	Selected = off
    	SelectionHighlight = on
    	Tag = listbox1
    	Type = uicontrol
    	UIContextMenu = []
    	UserData = []
    	Visible = on
    
    Ad per cambiare il colore dello sfondo (settarlo in rosso):
    
    set(handles.my_listbox_1,'BackgroundColor',[1 0 0])
    Per cambiare il colore delle stringhe (settarle in giallo):
    set(handles.my_listbox_1,'foregroundColor',[1 1 0])
    Per settare in "grassetto" le stringhe:
    
    set(handles.my_listbox_1,'fontweight','bold')
    Ecc.

    Hope this helps.
  • Re: Listbox e colori

    Ti ringrazio della risposta, come impostare i colori generali lo sapevo speravo ci fosse qualcosa per le singole stringhe pazienza grazie comunque
  • Re: Listbox e colori

    Buone notizie , anche se con un po' di ritardo.

    In questo post http://www.mathworks.com/matlabcentral/answers/25038-how-to-change-each-cell-color-in-a-uitable viene descritta una soluzione per colorare in modi diversi le singole celle di una "uitable".

    Lo stesso trucco si può utilizzare neò definire le singole righe di una listbox, quindi colorando in modo diverso le differenti righe, oppure per definire il colore delle stringhe nella listbox e lasciare il colore del background "bianco".

    Nel primo caso si possono costruire le varie stringhe così (nell'esempio si creano due stringhe "Prima stringa" e "seconda stringa", la prima con un background color "rosso", la seconda "verde"
    l_str{1}=['<html><table border=0 width=400 bgcolor=#FF0000><TR><TD>Prima stringa</TD></TR> </table></html>']
    l_str{2}=['<html><table border=0 width=400 bgcolor=#00ff00><TR><TD>Seconda stringa</TD></TR> </table></html>']
    
    Nel secondo caso si creano le stesse due stringhe con lo sfondo bianco (background di default) ma la prima in rosso e la seconda in verde.
    l_str{1}=['<html><font color="red">Prima strnga</font color></html>']
    l_str{2}=['<html><font color="green">Secondsa stringa</font color></html>']
    
    A questo punto basta assegnare "l_str" al listbox.

    Hope this helps.
  • Re: Listbox e colori

    Grazie dell'informazione provo subito
Devi accedere o registrarti per scrivere nel forum
4 risposte