在qml中追加Listmodel的功能很慢

时间:2016-09-30 10:23:06

标签: listview qml

我在qml中遇到listview的问题,委托的组件是许多TextArea的行,然后ListModel将通过调用:myListModel.append()函数插入新行。

然而,添加新行需要2-3秒,有人有想法吗? (如果我将行项替换为多个矩形,它会非常快地附加。)

我使用的是Qt 4.8,由于某些原因,我无法使用更高版本。我也尝试使用C ++中的QAbstractListModel来暴露给qml,结果相同。 谢谢。 代码段的主要问题如下:

                ListModel{
                    id: targetModel
                }

                // the delegate for each target in the model
                Component{
                    id: listDelegate
                    Item {
                        id: delegateItem
                        width: listView.width
                        height: 30
                        clip: true

                        Row_input{ // this row contains many TextInput rectangle 

                        }
                ListView{
                    id: listView
                    anchors.rightMargin: 0
                    anchors.bottomMargin: -8
                    anchors.leftMargin: 0
                    anchors.topMargin: 0
                    anchors.fill: parent
                    anchors.margins: 0
                    model: targetModel
                    delegate: listDelegate
                    interactive: false // not include mouse event to list view
                }

                Rectangle{
                    width: 30
                    height: 50
                    anchors.bottom: parent.bottom
                MouseArea{
                    anchors.fill: parent
                    onClicked:{
                       targetModel.append({})// append new row, it takes 2-3 seconds
                    }
                }

0 个答案:

没有答案