当ListModel为isEmpty时,qml委托无法创建与ListModel的绑定,并在第一次添加空的jsobject

时间:2019-12-30 07:12:08

标签: qt qml

我有一个这样的中继器:

    Repeater {
       id: idRepeater
       model: fruitModel
       delegate: Rectangle {
         id:idRect
         width:20
         height:20
         color:sColor
       }
    }

我的模型什么都没有,就像这样:

    ListModel {
        id: fruitModel
    }

我想要做的就是可以通过ListModel的append(jsobject dict) API添加元素。 我在下面写代码:

fruitModel.append({});
fruitModel.append({"sColor":"yellow"});

但是第二个矩形不是黄色。为什么?

1 个答案:

答案 0 :(得分:0)

您应该参考以下模型数据:

NoAction

当每个对象的成员不同时,还应该将列表模型的dynamicRoles设置为ListModel { id: fruitModel dynamicRoles: true } Repeater { id: idRepeater model: fruitModel delegate: Rectangle { id:idRect width:20 height:20 color: model.sColor } }