Auf dieser Seite

ListElement QML Type

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

Import Statement: import QtQml.Models

Ausführliche Beschreibung

Listenelemente werden innerhalb von „ ListModel “-Definitionen definiert und stellen Elemente einer Liste dar, die mithilfe von „ ListView “- oder „ Repeater “-Elementen angezeigt werden.

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

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

Ab Qt 5.11 ermöglicht „ListElement“ zudem die Zuweisung einer Funktionsdeklaration zu einer Rolle. Dies erlaubt die Definition von „ListElements“ mit aufrufbaren Aktionen.

Verweisen auf Rollen

Die Rollennamen werden von Delegaten verwendet, um Daten aus Listenelementen abzurufen. Jeder Rollenname ist im Geltungsbereich des Delegaten zugänglich und bezieht sich auf die entsprechende Rolle im aktuellen Element. Wenn die Verwendung eines Rollennamens mehrdeutig wäre, kann über die Eigenschaft ` model ` darauf zugegriffen werden (z. B. ` model.cost ` anstelle von ` cost`).

Anwendungsbeispiel

Das folgende Modell definiert eine Reihe von Listenelementen, von denen jedes die Rollen „name“ und „cost“ sowie die dazugehö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 Delegat ermittelt 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.

© 2026 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.