我有一组动态QML组件(这些组件基于/组合不同的控件,如图像,标签......),它们显示在父控件中的“任意”位置。每个组件的位置由底层对象(C ++)定义。目前,每次创建或删除新的基础对象时,我都会使用dynamic object creation创建和删除这些组件。
虽然这样可行,但使用具有基础QAbstractItemModel的委托/模型方案会更加清晰。是否有内置组件,例如一个允许自由定位QAbstractItemModel项目的组件?
[编辑]:这是对我的意思的描述:
此致
答案 0 :(得分:3)
您可以使用Repeater
,它通常与行或列一起使用,但它也适用于独立项目。
除此之外,您还有添加和删除项目的信号。
Repeater {
model: 20
delegate: Rectangle {
width: 50
height: 50
color: Qt.rgba(Math.random(), Math.random(), Math.random(), 1)
MouseArea {
anchors.fill: parent
onPositionChanged: {
parent.x += mouseX
parent.y += mouseY
}
}
}
}