2017-02-07 28 views
1

例如,當我在ComboBox上設置enabled屬性時,它會變爲「灰色」。據我可以告訴它在組件上方繪製一層具有一定不透明度的圖層,以使原始設計可見但稍微褪色。我如何調整這種效果?如何自定義QtQuick 2組件樣式,但啓用爲false

我試圖根據enabled屬性的狀態更改我的組件背景顏色,但這並沒有幫助。例如,我將背景顏色設置爲紅色,當enabled屬性爲假時,但它並未變爲紅色,由於覆蓋了我上面描述的內容,它變得更像淺紅色。

一個簡單的代碼例如:

ComboBox { 
    id: control 
    enabled: false 

    model: ["First", "Second", "Third"] 

    background: Rectangle { 
    color: control.enabled ? "transparent" : "red" 
    } 
} 
+0

你正在使用哪個Qt版本?我相信這是固定在Qt 5.7.1。 – jpnurmi

+1

這個落在Qt 5.7.1中的特殊提交將opacity語句從控件的根元素移到了構件塊,所以現在如果替換背景,您可以完全控制它的不透明度:http://code.qt .io/cgit/qt/qtquickcontrols2.git/commit/src/imports/controls/ComboBox.qml?id = f6acc98f3a96ab6cafedfe2a3f097a1974abad16 – jpnurmi

+0

PS。該屬性的名稱是「enabled」。 – jpnurmi

回答

1

那麼作爲@jpnurmi建議的,我的問題的來源是固定在Qt的5.7.1。

ComboBox { 
    id: control 
    enabled: false 

    model: ["First", "Second", "Third"] 

    opacity: 1 // * 

    background: Rectangle { 
    color: control.enabled ? "transparent" : "red" 
    } 
} 

* =在此處添加此項,將覆蓋默認的不透明度行爲,然後可以通過背景組件手動控制它,例如。

相關問題