У меня есть динамический набор компонентов QML (они основаны на / объединяют различные элементы управления, такие как изображения, метки, …), которые отображаются на «произвольных» позициях в родительском элементе управления. Положение каждого компонента определяется базовым объектом (C ++). На данный момент я создаю и удаляю эти компоненты, используя создание динамических объектов, каждый раз, когда новый базовый объект создается или удаляется.
Хотя это работает, было бы намного чище использовать схему делегата / модели с QAbstractItemModel. Есть ли встроенный компонент для этого, например компонент, который позволяет свободное позиционирование элементов QAbstractItemModel?
[РЕДАКТИРОВАТЬ]: Вот изображение того, что я имею в виду:С Уважением,
Вы можете использовать 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
}
}
}
}
Других решений пока нет …