我在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
}
}