要封装一个QML组件并将其添加到ListView
中,可以使用自定义QML组件和ListModel
。下面是一个简单的示例:
MyItem.qml:
import QtQuick 2.0
Rectangle {
width: 200
height: 50
color: "lightblue"
property string text
Text {
text: parent.text
anchors.centerIn: parent
}
}
Main.qml:
import QtQuick 2.0
Item {
width: 200
height: 400
ListView {
anchors.fill: parent
ListModel {
id: myModel
}
delegate: MyItem { // 使用自定义的MyItem作为delegate
text: modelData.text
}
}
Button {
anchors.bottom: parent.bottom
text: "Add Item"
onClicked: {
// 在model中添加一个新的item(包含文本)
myModel.append({text:"New Item"})
// 滚动到最后一个item处,以便用户看到新添加的item。
listView.positionViewAtEnd()
}
}
}
在上述代码中,我们使用了自定义的QML组件MyItem
作为ListView的delegate,并在其中添加了一个名为text的属性。然后,在按钮的onClicked事件处理程序中,我们向myModel添加了一个新项目,并调用positionViewAtEnd()函数将视图滚动到最后一个项目。
当您点击“Add Item”按钮时,就会出现“Add Item”按钮,并且每次单击都会在底部添加一个新项。这些新项使用自定义的QML组件MyItem
进行渲染。