2013-08-27 12 views
6

Ich verwende einige QML controls wie GroupBox und CheckBox die Text mit ihnen verbunden sind. Die Standardfarbe des Textes ist schwarz. Allerdings habe ich diese Elemente auf einem dunklen Hintergrund und würde es vorziehen, Weiß für die Textfarbe zu verwenden. Diese Elemente haben keine Farbeigenschaft, daher bin ich mir nicht sicher, was ich tun soll.Ändern Sie die Textfarbe für QML-Steuerelemente

CheckBox { 
    text: "Check Me" 
} 

Antwort

3

Sie müssen die style Eigenschaft verwenden, um die Component neu zu definieren, für das Label auf dem

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" 
      } 
     } 
    } 
} 
Basis zu verwenden, wenn CheckBoxStyle verwenden Sie möglicherweise die gesamte Komponente neu zu definieren und nicht nur das Label Eigentum.

+0

Leider scheint dies nicht zu funktionieren. CheckBoxStyle ist unterstrichen, als könnte es nicht gefunden werden und ich habe die Importe bereitgestellt (aber kompiliert). Das einzige, was sich geändert hat, ist jetzt, dass ich das Kontrollkästchen-Label überhaupt nicht sehen kann. – roundtheworld

+0

Ich habe gerade ein Upgrade auf Qt Creator 2.8.1 durchgeführt und während CheckBoxStyle nicht mehr unterstrichen ist, erscheint der Text immer noch nicht weiß. Außerdem habe ich bemerkt, dass ich mit dem obigen Code viele andere Stilelemente verloren habe. Das Kontrollkästchen hat jetzt ein graues Quadrat, das einem tatsächlichen Häkchen gegenübersteht, wenn darauf geklickt wird. – roundtheworld

+1

@ user1595510 Ich habe meine Antwort aktualisiert, indem ich die text -Eigenschaft in der Label-Komponente verschoben habe. Ich hatte Qt nicht, um es gestern auszuprobieren. Auf meiner Version von Qt (5.1.0) setzt es den Text als weiß – koopajah

2

Haben Sie versucht, es als ganzes Unterelement der Checkbox zu setzen?

CheckBox { 

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

Ich hatte das gleiche Problem mit GroupBox, also wollte ich eine Antwort für zukünftige Referenz veröffentlichen. Das Problem kann einfach mit HTML-Formatierung behoben werden. Zum Beispiel, um die Farbe zu ändern:

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

Größe und andere Formatierungsparameter können auf die gleiche Weise geändert werden.