QML Dynamic View Ordering Tutorial QML Dynamic View Ordering Tutorial 2 - Dragging View Items
We begin our application by defining a ListView, a model which will provide data to the view, and a delegate which provides a template for constructing items in the view.
The code for the ListView and delegate looks like this:
import QtQuick 2.0 Rectangle { id: root width: 300; height: 400 Component { id: dragDelegate Rectangle { id: content anchors { left: parent.left; right: parent.right } height: column.implicitHeight + 4 border.width: 1 border.color: "lightsteelblue" radius: 2 Column { id: column anchors { fill: parent; margins: 2 } Text { text: 'Name: ' + name } Text { text: 'Type: ' + type } Text { text: 'Age: ' + age } Text { text: 'Size: ' + size } } } } ListView { id: view anchors { fill: parent; margins: 2 } model: PetsModel {} delegate: dragDelegate spacing: 4 cacheBuffer: 50 } }
The model is defined in a separate QML file which looks like this:
import QtQuick 2.0 ListModel { ListElement { name: "Polly" type: "Parrot" age: 12 size: "Small" } ListElement { name: "Penny" type: "Turtle" age: 4 size: "Small" } }
The first item defined within the application's root Rectangle is the delegate Component. This is the template from which each item in the ListView is constructed.
The name, age, type, and size variables referenced in the delegate are sourced from the model data. The names correspond to roles defined in the model.
Component { id: dragDelegate Rectangle { id: content anchors { left: parent.left; right: parent.right } height: column.implicitHeight + 4 border.width: 1 border.color: "lightsteelblue" radius: 2 Column { id: column anchors { fill: parent; margins: 2 } Text { text: 'Name: ' + name } Text { text: 'Type: ' + type } Text { text: 'Age: ' + age } Text { text: 'Size: ' + size } } } }
The second part of the application is the ListView itself to which we bind the model and delegate.
ListView { id: view anchors { fill: parent; margins: 2 } model: PetsModel {} delegate: dragDelegate spacing: 4 cacheBuffer: 50 }
Files:
QML Dynamic View Ordering Tutorial QML Dynamic View Ordering Tutorial 2 - Dragging View Items
As part of the free Business evaluation, we offer a free welcome call for companies, to talk about your requirements, and how the Felgo SDK & Services can help you. Just sign up and schedule your call.
Sign up now to start your free Business evaluation: