QML之Repeater 控件使用

Repeater 控件是 重复作用 根据 model中的index 数量进行重复

废话不说 直接看如何用 

当model 为数字时 



Rectangle{
    height: 1200
    width: 500
    visible: true
    anchors.fill: parent
   Column{
       spacing: 20
       Repeater{
           model: 10
           delegate: Rectangle{
               width: 60
               height: 20
               color: index%2 == 0?"red":"blue"
           }
       }
   }
}

结果:

 当model 为数组时



Rectangle{
    height: 1200
    width: 500
    visible: true
    anchors.fill: parent
   Column{
       spacing: 20
       Repeater{
           model: ["apple","banana","pear"]
           delegate: Rectangle{
               width: 110
               height: 50
               color: index%2 == 0?"red":"blue"
               Text {
                   id: name
                   text: modelData+index
                   font.pixelSize: 14
                   anchors.centerIn: parent
               }
           }
       }
   }
}

结果:

  当model 为自定义model时  采用id 传递



Rectangle{
    height: 1200
    width: 500
    visible: true
    anchors.fill: parent
   Column{
       spacing: 20
       Repeater{
           model: modelId
           delegate: Rectangle{
               width: 110
               height: 50
               color: index%2 == 0?"red":"blue"
               Text {
                   id: txt
                   text: name+" "+index
                   font.pixelSize: 14
                   anchors.centerIn: parent
               }
           }
       }
       ListModel{
           id:modelId
           ListElement{
               name:"Liming";
               age: 12
           }
           ListElement{
               name:"Zhangjie";
               age: 19
           }
           ListElement{
               name:"Wanglaing";
               age: 22
           }
       }
   }
}

结果:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
QML ,可以使用 GridLayout 来布局控件。要向 GridLayout 添加控件,可以使用 additem() 函数。 例如,下面是一个示例代码,演示如何使用 GridLayout 添加两个按钮: ``` import QtQuick 2.0 import QtQuick.Controls 2.0 ApplicationWindow { visible: true width: 200 height: 200 GridLayout { columns: 2 spacing: 10 Button { text: "Button1" } Button { text: "Button2" } } } ``` 在上面的代码,GridLayout 的 columns 属性设置为 2,表示该布局包含两列。spacing 属性设置为 10,表示控件之间的间距为 10。 接下来,在 GridLayout 添加两个按钮。第一个按钮的文本为 “Button1”,第二个按钮的文本为 “Button2”。这两个按钮将被自动放置在 GridLayout 的第一行,第二列和第二行,第一列。 如果想要动态添加控件,可以使用 additem() 函数。例如,下面的示例代码演示了如何创建一个 GridLayout,并在其添加一个按钮: ``` import QtQuick 2.0 import QtQuick.Controls 2.0 ApplicationWindow { visible: true width: 200 height: 200 GridLayout { id: grid columns: 1 spacing: 10 } Button { text: "Add Button" onClicked: { var button = Qt.createComponent("Button.qml"); grid.addItem(button); } } } ``` 在上面的代码,GridLayout 的 id 属性设置为 “grid”,以便在 JavaScript 引用它。 接下来,创建一个按钮,并将其添加到 GridLayout 。在 onClicked 信号的处理程序使用 Qt.createComponent() 函数创建一个新的 Button 对象,并将其添加到 GridLayout 的最后一行。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值