Qml: компонент Делегат / Модель для плавающих элементов модели

У меня есть динамический набор компонентов QML (они основаны на / объединяют различные элементы управления, такие как изображения, метки, …), которые отображаются на «произвольных» позициях в родительском элементе управления. Положение каждого компонента определяется базовым объектом (C ++). На данный момент я создаю и удаляю эти компоненты, используя создание динамических объектов, каждый раз, когда новый базовый объект создается или удаляется.

Хотя это работает, было бы намного чище использовать схему делегата / модели с QAbstractItemModel. Есть ли встроенный компонент для этого, например компонент, который позволяет свободное позиционирование элементов QAbstractItemModel?

[РЕДАКТИРОВАТЬ]: Вот изображение того, что я имею в виду:

введите описание изображения здесь

С Уважением,

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
}
}
}
}
3

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector