C

ListElement QML Type

Defines a data item in a ListModel. More...

Import Statement: import QtQuick

Detailed Description

List elements are defined inside ListModel definitions, and represent items in a list that is displayed using ListView or Repeater items.

List elements are defined like other QML elements except that they contain a collection of role definitions instead of properties. Using the same syntax as property definitions, roles define how to access the data and include the data itself.

The names used for roles must begin with a lower-case letter and must be common to all elements in a given model. Values must be simple constants; either strings (optionally wrapped in qsTr), boolean values (true, false), numbers, or enumeration values (such as AlignText.AlignHCenter).

Referencing Roles

The role names are used by delegates to obtain data from list elements. Each role name is accessible in the delegate's scope via the modelData property and refers to the corresponding role in the current element. For example, modelData.cost refers to the current data for the cost role.

Note: Qt Quick Ultralite does not allow unqualified access to model roles. Additionally, Qt Quick uses model for role access while Qt Quick Ultralite uses modelData. See Qt Quick Ultralite differences in models.

Example Usage

The following model defines a series of list elements, each of which contain "name" and "cost" roles along with their associated values.

ListModel {
    id: fruitModel

    ListElement {
        name: "Apple"
        cost: "2.45"
    }
    ListElement {
        name: "Orange"
        cost: "3.25"
    }
    ListElement {
        name: "Banana"
        cost: "1.95"
    }
}

The delegate obtains the name and cost for each ListElement by referring to modelData.name and modelData.cost:

ListView {
    anchors.fill: parent
    model: fruitModel
    delegate: Row {
        width: parent.width / fruitModel.count
        height: parent.height / fruitModel.count
        Text { text: "Fruit: " + model.name }
        Text { text: " Cost: $" + model.cost }
    }
}

See also ListModel and Qt Quick Ultralite differences in models.

Available under certain Qt licenses.
Find out more.