ListElement QML Type

Definiert ein Datenelement in einem ListModel. Mehr....

Import Statement: import QtQml.Models

Detaillierte Beschreibung

Listenelemente werden innerhalb von ListModel Definitionen definiert und stellen Elemente in einer Liste dar, die mit ListView oder Repeater angezeigt werden.

Listenelemente werden wie andere QML-Elemente definiert, mit dem Unterschied, dass sie eine Sammlung von Rollendefinitionen anstelle von Eigenschaften enthalten. Unter Verwendung der gleichen Syntax wie Eigenschaftsdefinitionen definieren Rollen sowohl, wie auf die Daten zugegriffen wird, als auch die Daten selbst.

Die für Rollen verwendeten Namen müssen mit einem Kleinbuchstaben beginnen und sollten für alle Elemente in einem bestimmten Modell gleich sein. Werte müssen einfache Konstanten sein; entweder Strings (in Anführungszeichen und optional innerhalb eines Aufrufs an QT_TR_NOOP), boolesche Werte (true, false), Zahlen oder Aufzählungswerte (wie AlignText.AlignHCenter).

Ab Qt 5.11 erlaubt ListElement auch die Zuweisung einer Funktionsdeklaration zu einer Rolle. Dies erlaubt die Definition von ListElements mit aufrufbaren Aktionen.

Rollen referenzieren

Die Rollennamen werden von Delegaten verwendet, um Daten von Listenelementen zu erhalten. Jeder Rollenname ist im Geltungsbereich des Delegaten zugänglich und verweist auf die entsprechende Rolle im aktuellen Element. Wenn ein Rollenname nicht eindeutig zu verwenden ist, kann auf ihn über die Eigenschaft model zugegriffen werden (z. B. model.cost anstelle von cost).

Beispiel für die Verwendung

Das folgende Modell definiert eine Reihe von Listenelementen, von denen jedes die Rollen "name" und "cost" und die zugehörigen Werte enthält.

ListModel {
    id: fruitModel

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

Der Delegierte erhält den Namen und die Kosten für jedes Element, indem er einfach auf name und cost verweist:

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

Siehe auch ListModel.

© 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.