qml----Model/View入門(九)Repeater


  repeater,用於創建多個基於item的組件,通常會用到三個屬性,count-創建item的數量,model-指定數據,delegate-待實例化的模型,一般在創建repeater時不顯示初始化。另外,還有其它常用屬性:
  itemAt(index) 根據索引返回對應的delegate實例
  model 可以取數字(表示創建的數量)、字符串列表、對象列表、ListModel
  雖然repeater可以一次性創建大量的同一類型的Item,但是當量大時,效率就會低下;而listview呢它會創建少部分item,直到用戶需要看到它時才會再創建。

  下面是展示代碼

  

import QtQuick 2.2
import QtQuick.Layouts 1.1

Rectangle {
    id: root
    width: 320
    height: 480
    color: "#EEEEEE"

    Grid{
        anchors.left: parent.left
        anchors.leftMargin: 4
        anchors.top: parent.top
        anchors.topMargin: 4
        rows: 3
        spacing: 5

        Repeater{
            //model: 8 //數字模式
            model: ["A", "B", "C", "D", "E", "F", "G", "H"]   //字符串模式
//            model:[
//                {"text": "A", "object": "RA"},
//                {"text": "B", "object": "RB"},
//                {"text": "C", "object": "RC"},
//                {"text": "D", "object": "RD"},
//            ]         //對象模式

//            model: ListModel{
//                ListElement{name : "A"; object: "RA";}
//                ListElement{name : "B"; object: "RB";}
//                ListElement{name : "C"; object: "RC";}
//                ListElement{name : "D"; object: "RD";}
//            }         //ListModel模式

            Rectangle{
                width: root.width / 3 - 7
                height: width
                color: Qt.rgba(Math.random(), Math.random(), Math.random(), 1)

                Text{
                    anchors.centerIn: parent
                    font.pixelSize: 15
                    font.bold: true
                    color: "red"
                    text: modelData //modelData.name 或者modelData.text
                }
            }
        }
    }
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM