QML之ListView

ListView

QML中的ListView、GridView、Repeater等元素需要数据模型来提供显示的数据,这些元素需要一个位模型中的每一项数据生成一个实例的代理组件(delegate component)。模型可以是静态的,也可以对其动态修改,插入,删除,移动。

给代理提供的数据,通常是叫做角色的数据绑定到代理,如下面的ListModel有2个角色,type和age,ListView带有一个代理,并绑定这些角色以显示他们的值。

Item{
    width:200;height:200;
    ListModel{
        id:myModel
        ListElement{type:"Dog";age:8}
        ListElement{type:"Cat";age:5}
    }
    Component{
        id:myDelegate
        Text{
            text:
                {type+","+age}
        }
    }
    ListView{
        anchor.fill:parent;
        model:myModel;
        delegate:myDelegate
    }
}

还可以直接在ListView中直接写上代理
//delagate中每一行作为数据的代理

ListView{
    anchors.fill:parent
    model:fruitModel
    delegate:Row{
        Text{
            text:"fruit:"+type;
        }
        Text{
            text:"fruit:"+age;
        }

    }
}

ListModel提供了可以直接在Js中调用的方法。这时候第一次插入的项决定使用模型的视图可用的角色。
如创建了一个空的ListModel,并在JS中填充,第一次插入时指定的角色将显示在视图中:

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值