如何在ListView中捕获模型更新信号

时间:2016-02-08 06:56:02

标签: qt qml qtquick2

有没有办法在qml中捕获模型更新信号。

这是我的示例程序。我有一个矩形,顶部有listview。

鼠标我正在更新listmodel。

Rectangle{
        id: root
        anchors.fill: parent

        ListModel {
            id: fruitModel

            ListElement {
                name: "Apple"
                cost: 2.45
            }
            ListElement {
                name: "Orange"
                cost: 3.25
            }
            ListElement {
                name: "Banana"
                cost: 1.95
            }
        }

        Component {
            id: fruitDelegate
            Row {
                spacing: 10
                Text { text: name }
                Text { text: '$' + cost }
            }
        }

        ListView {
            id: list
            anchors.fill: parent
            model: fruitModel
            delegate: fruitDelegate
            onModelChanged: {
                console.log("hi heloooo")
            }
        }

        MouseArea{
            anchors.fill: parent
            onClicked: {
                fruitModel.append({"cost": 5.95, "name":"Pizza"})//added new 
                fruitModel.remove(1) // deleted old. so count still same
            }
        }
    }

点击鼠标我正在更新模型,我只想在模型发生变化时抓住。

1 个答案:

答案 0 :(得分:0)

更改模型意味着什么?如果您对添加或删除的项目感兴趣,可以将监听器绑定到onCountChanged的{​​{1}}信号。