qml中ListModel使用方法

本文探讨了Qt QML的ListModel如何处理Object数据,指出ListModel支持添加和获取Object对象,但不支持级联设置参数。示例代码展示了添加、修改属性的正确和错误方法,以及通过序列化来实现数据添加的解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

ListModel中的数据可以看作是一个Object,可以使用Object中的方法,常用方法如下图。

 但在创建新的对象和添加数据时,却和常规的Object不一致,需要特殊处理,代码如下。

property var listModel: ListModel{}
function testModel(){
    var ob={};
    ob.name = "11";
    ob.age =18;
    ob.detail2 = {}
    listModel.append(ob);
    var data = listModel.get(0);

    //修改属性成功
    var t1 ={"b":"bbbb"};   //先定义对象
    var t2 ={};
    t2.info = t1;
    data.detail2 = t2;  //再使用对象
    console.log("2", JSON.stringify(data));

    //修改属性失败
    data.detail2.info ={"c":"cccc"};    //直接串联写入数据无效
    console.log("3", JSON.stringify(data));

    //添加属性失败
//            data.detail1 ={};   //添加对象数据失败
//            data.detail1.info ={"a":"aaaa"};    //TypeError
//            console.log("11", JSON.stringify(data));


    //添加属性成功
    var dataStr = JSON.stringify(data); //通过序列化添加数据
    var data2 = JSON.parse(dataStr);
    data2.detail1 ={};
    data2.detail1.info ={"a":"aaaa"};
    data = data2;
    console.log("11", JSON.stringify(data));
}

总结:

  • ListModel支持添加和获取Object对象。
  • ListModel不支持级联设置参数(如data.detail2.info)。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值