QMLの代替ListViewアイテムに2色を割り当てることは可能ですか? 最初のリスト項目を黒、次に 2 番目のリスト項目を青、次に 3 番目の項目を黒、4 番目の項目を青などに色付けしたい...
qmlでこれを達成するにはどうすればよいですか? あなたの考えを共有してください。ありがとう。
デリゲートのindexプロパティを使用して、このデリゲート要素が偶数か奇数かを判断し、それを使用してデリゲートの色を変更できます。
ListView {
anchors.fill: parent
model: 3
delegate:
Rectangle {
width: 20
height: 30
color: index % 2 == 0 ? "blue" : "black"
}
}
「model.index」を使用することをお勧めします。これはまったく同じですが、コードがより理解しやすくなります。ところで、そのため
var colors = [ "#E4DDE8", "#00000000" ];
「altColor」が呼び出されるたびに、新しい配列が作成されます。非常に非効率的です。配列宣言をリスト ビューに移動します。
property var colors: ["#E4DDE8", "#00000000"]
質問はすでに回答されていますが、色を保持する Listmodel のプロパティを定義できます。
ListModel {
id: fruitModel
ListElement {
name: "Apple"
cost: 2.45
elementColor: "red"
}
ListElement {
name: "Orange"
cost: 2.45
elementColor: "black"
}
ListElement {
name: "Banana"
cost: 2.45
elementColor: "gray"
}
}
そしてそれをデリゲートに表示します:
Rectangle{
anchors.fillIn:parent
color: elementColor
}