16

QMLの代替ListViewアイテムに2色を割り当てることは可能ですか? 最初のリスト項目を黒、次に 2 番目のリスト項目を青、次に 3 番目の項目を黒、4 番目の項目を青などに色付けしたい...

qmlでこれを達成するにはどうすればよいですか? あなたの考えを共有してください。ありがとう。

4

4 に答える 4

39

デリゲートのindexプロパティを使用して、このデリゲート要素が偶数か奇数かを判断し、それを使用してデリゲートの色を変更できます。

ListView {
  anchors.fill: parent
  model: 3

  delegate:
    Rectangle {
        width: 20
        height: 30
        color: index % 2 == 0 ? "blue" : "black"
    }
}
于 2012-11-23T07:23:04.583 に答える
0

「model.index」を使用することをお勧めします。これはまったく同じですが、コードがより理解しやすくなります。ところで、そのため

var colors = [ "#E4DDE8", "#00000000" ];

「altColor」が呼び出されるたびに、新しい配列が作成されます。非常に非効率的です。配列宣言をリスト ビューに移動します。

property var colors: ["#E4DDE8", "#00000000"]
于 2014-08-05T16:14:25.993 に答える
0

質問はすでに回答されていますが、色を保持する 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
}
于 2014-08-09T14:51:33.600 に答える