我已啓用材質設計(黑色主題)。更改ItemDelegate的背景和文本顏色
一些教程告訴我使用背景屬性來設置自定義顏色的矩形項目。就像這個截圖:
但是使用這個技術我沒有這些漂亮的連鎖反應了。我只想改變所有項目的背景和文字顏色。
所以我試着改變背景propertys沒有運氣。在啓動時,調試輸出告訴我在後臺沒有顏色屬性。
所以我想出了一個使用綁定的「哈克」方法......現在屬性存在!?
這是完成我的目標的最佳方式嗎?點擊時會出現漣漪效應,但我對此沒有很好的感覺。我不明白爲什麼該屬性存在使用綁定時,爲什麼他們不存在使用正常的數據綁定。
ItemDelegate {
width: ListView.view.width
height: contentItem.implicitHeight + 10
topPadding: 5
bottomPadding: 5
highlighted: ListView.view.currentIndex === model.index
//background.color: highlighted ? "#81A3CF" : "#B3B2B2"
Binding {
target: background
property: "color"
value: highlighted ? "#81A3CF" : "#B3B2B2"
}
text: model.index + (highlighted ? " [highlighted]" : "")
//contentItem.color: "black"
Binding {
target: contentItem
property: "color"
value: "black"
}
onClicked: {
if(ListView.view.currentIndex === model.index)
ListView.view.currentIndex = -1;
else
ListView.view.currentIndex = model.index
}
}
好的,所以我會留在綁定爲我的背景,因爲它取決於突出顯示。我非常難過,我自己實施了這些基本的東西,比如突出顯示的方式和onClicked事件。我絕對認爲這樣的事情應該留在圖書館裏。 –