QML之Repeater重复器

2019-12-13  本文已影响0人  Qt君

介绍Repeater重复器的使用方法,应用场景。

  Repeater控件用于创建大量类似的项。与其他视图控件(ListView,PathView)类似。单纯使用Repeater控件没多大作用,一般与布局类控件(Row,Column,Grid)搭配使用。

简单示例

Row {
    Repeater {
        model: ["red", "blue", "green"]

        Rectangle {
            width: 80; height: 50
            color: modelData
        }
    }
}
main_page.png

使用文档

  1. 属性:
  1. 信号:
  1. 方法:

使用场景

复杂示例

ListModel {
    /* 数据项 */
    id: myModel
    ListElement { colour: "red"; }
    ListElement { colour: "blue"; }
    ListElement { colour: "green"; }
}

Component {
    /* 代理项(实例) */
    id: myDelegate
    Rectangle {
        width: 80; height: 50
        color: colour /* 通过数据项(model)映射获得。 */

        MouseArea {
            anchors.fill: parent
            /* 点击添加一个数据项,界面因此会多一个项显示。 */
            onClicked: myModel.append({colour: "lightblue"})
        }
    }
}

Row {
    Repeater {
        id: repeater
        model: myModel
        delegate: myDelegate
        onItemAdded: console.log("Add Item.", index, item.color)
        onItemRemoved: console.log("Remove Item.", index, item.color)
    }
}

更多精彩内容请关注公众号Qt君

上一篇 下一篇

猜你喜欢

热点阅读