2013-08-27 116 views
6

我正在使用一些QML controls,如GroupBoxCheckBox,它們與文本相關聯。文本的默認顏色是黑色。但是,我將這些項目放在黑色背景上,並且希望使用白色作爲文本顏色。這些項目沒有顏色屬性,所以我不知道該怎麼做。更改QML控件的文本顏色

CheckBox { 
    text: "Check Me" 
} 

回答

3

您需要使用style屬性重新定義Component使用的基礎上,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" 
      } 
     } 
    } 
} 

標籤使用CheckBoxStyle你可能要重新定義了整個組件,而不僅僅是標籤屬性。

+0

不幸的是,這似乎並不奏效。 CheckBoxStyle被加下劃線,因爲它找不到它,我確實提供了導入(但編譯得很好)。唯一改變的是現在我根本看不到複選框標籤。 – roundtheworld

+0

我剛剛升級到Qt Creator 2.8.1,而CheckBoxStyle不再加下劃線,文本仍然不會顯示爲白色。另外,我注意到我用上面的代碼丟失了很多其他樣式元素。該複選框現在有一個灰色方塊,而不是點擊時的實際檢查。 – roundtheworld

+1

@ user1595510我通過移動標籤組件中的文本屬性更新了我的答案。我沒有Qt在昨天嘗試。在我的Qt版本(5.1.0)上,它將文本設置爲白色 – koopajah

2

您是否嘗試將其設置爲複選框的整個子元素?

CheckBox { 

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

我對GroupBox有同樣的問題,所以我想發佈一個答案以供將來參考。 使用HTML格式可以輕鬆解決問題。例如改變顏色:

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

大小和其他格式參數可以用同樣的方法改變。