我想通过动态填充QtQuick 2.0(Qt 5)中的ListModel填充GridView。 它可以工作,但应用程序启动非常缓慢:当动态填充GridView时启动缓慢的应用程序
应用程序窗口立即显示,但lightblue背景显示需要约2秒。在此之前,我看到一个默认的灰色背景。
如果我取消注释下面评论的两行,应用程序立即启动。但我不喜欢这种黑客攻击,因为我不明白它为什么起作用。
有谁知道什么可能是错的?
谢谢!
import QtQuick 2.0
Rectangle {
width: 1024; height: 600
color: "lightblue"
Component.onCompleted: {
//moviesModel.clear()
moviesModel.append({ "movieNumber": 1 })
}
ListModel {
id: moviesModel
//ListElement { movieNumber: 0 }
}
Component {
id: moviesComponent
Rectangle {
width: grid.cellWidth
height: grid.cellHeight
Text {
anchors.centerIn: parent
text: movieNumber
}
}
}
GridView {
id: grid
anchors.fill: parent
cellWidth: 100
cellHeight: 200
model: moviesModel
delegate: moviesComponent
}
}
你如何填充你的模型?通过多次“append”调用? – 2013-03-10 04:57:35
是的,但即使只有一个追加电话,它也会被复制,正如上面的代码一样。要重现,请创建一个新的QtQuick 2.0项目并将代码复制粘贴到main.qml中。 – Zmey 2013-03-10 21:08:00