2013-08-27 18 views
6

Sto usando alcuni QML controls come GroupBox e CheckBox a cui è associato del testo. Il colore predefinito del testo è nero. Tuttavia, ho questi elementi su uno sfondo scuro e preferisco usare il bianco per il colore del testo. Questi articoli non hanno una proprietà di colore quindi non sono sicuro di cosa fare.Cambia colore del testo per i controlli QML

CheckBox { 
    text: "Check Me" 
} 

risposta

3

è necessario utilizzare la proprietà style per ridefinire il Component da utilizzare per l'etichetta in base alla CheckBoxStyle

import QtQuick 2.1 
import QtQuick.Controls 1.0 
import QtQuick.Controls.Styles 1.0 

Rectangle { 
    color: "black" 
    CheckBox { 
     style: CheckBoxStyle { 
      label: Text { 
       color: "white" 
       text: "check Me" 
      } 
     } 
    } 
} 

Quando si utilizza CheckBoxStyle potrebbe essere necessario ridefinire l'intero componente e non solo l'etichetta proprietà.

+0

Sfortunatamente, questo non sembra funzionare. CheckBoxStyle è sottolineato come non riesce a trovarlo e ho fornito le importazioni (ma compila bene). L'unica cosa che è cambiata ora è che non riesco a vedere l'etichetta della casella di controllo. – roundtheworld

+0

Ho appena aggiornato a Qt Creator 2.8.1 e mentre CheckBoxStyle non è più sottolineato, il testo non appare ancora bianco. Inoltre, ho notato che ho perso molti altri elementi di stile con il codice precedente. La casella di controllo ora ha un quadratino grigio opposto a un controllo reale quando viene cliccato. – roundtheworld

+1

@ user1595510 Ho aggiornato la mia risposta spostando la proprietà text nel componente label. Non avevo Qt per provarlo ieri. Sulla mia versione di Qt (5.1.0) imposta il testo come bianco – koopajah

2

Hai provato a impostarlo come un intero sottoelemento della casella di controllo?

CheckBox { 

    Text { 
     text: "Check Me" 
     color: "red" 
    } 
} 
-1

Ho avuto lo stesso problema con GroupBox, quindi ho voluto postare una risposta per riferimento futuro. Il problema può essere facilmente risolto usando la formattazione HTML. Ad esempio per cambiare il colore:

GroupBox{ 
    title: "<font color=\"white\">my title</font>" 
} 

Dimensioni e altri parametri di formattazione possono essere modificati allo stesso modo.