TableModelColumn QML Type

Stellt eine Spalte in einem Modell dar. Mehr...

Import Statement: import Qt.labs.qmlmodels

Detaillierte Beschreibung

Die TableModelColumn-Klasse repräsentiert Spalten in TableModel. TableModel unterstützt JavaScript/JSON-Daten, bei denen jede Zeile ein Objekt ist, eine Liste von einfachen Schlüssel-Wert-Paaren, bei denen die Schlüssel ungeordnet sind.

{
    // Each property is one cell/column.
    checked: false,
    amount: 1,
    fruitType: "Apple",
    fruitName: "Granny Smith",
    fruitPrice: 1.50
},
// ...

Modelle in Qt werden jedoch über Zeilen- und Spaltenindizes manipuliert. Die Angabe der Spalten mit TableModelColumn ermöglicht ein Mapping zwischen den in Qt eingebauten Rollen und jeder Eigenschaft in jedem Zeilenobjekt.

import QtQuick
import QtQuick.Window
import Qt.labs.qmlmodels

Window {
    width: 400
    height: 400
    visible: true

    TableView {
        anchors.fill: parent
        columnSpacing: 1
        rowSpacing: 1
        boundsBehavior: Flickable.StopAtBounds

        model: TableModel {
            TableModelColumn { display: "checked" }
            TableModelColumn { display: "amount" }
            TableModelColumn { display: "fruitType" }
            TableModelColumn { display: "fruitName" }
            TableModelColumn { display: "fruitPrice" }

            // Each row is one type of fruit that can be ordered
            rows: [
                {
                    // Each property is one cell/column.
                    checked: false,
                    amount: 1,
                    fruitType: "Apple",
                    fruitName: "Granny Smith",
                    fruitPrice: 1.50
                },
                {
                    checked: true,
                    amount: 4,
                    fruitType: "Orange",
                    fruitName: "Navel",
                    fruitPrice: 2.50
                },
                {
                    checked: false,
                    amount: 1,
                    fruitType: "Banana",
                    fruitName: "Cavendish",
                    fruitPrice: 3.50
                }
            ]
        }
        delegate:  TextInput {
            text: model.display
            padding: 12
            selectByMouse: true

            onAccepted: model.display = text

            Rectangle {
                anchors.fill: parent
                color: "#efefef"
                z: -1
            }
        }
    }
}

TableModelColumn hat auch eine grundlegende Nur-Lese-Unterstützung für komplexe Zeilen. Für weitere Informationen, siehe Supported Row Data Structures.

Hinweis: Die meisten der oben genannten Konzepte gelten auch für TreeModel, außer dass in TreeModel jede Zeile einen Knoten des Baums darstellt.

Unterstützte Rollen

TableModelColumn unterstützt alle Rollen von Qt's roles, mit Ausnahme von Qt::InitialSortOrderRole. Auf die Rollen kann wie unten aufgeführt zugegriffen werden, z. B.

text: display

required property string display
Qt::DisplayRoleanzeigen
Qt::DecorationRoleDekoration
Qt::EditRolebearbeiten
Qt::ToolTipRoletoolTip
Qt::StatusTipRolestatusTip
Qt::WhatsThisRolewhatsThis
Qt::FontRoleSchriftart
Qt::TextAlignmentRoletextAusrichtung
Qt::BackgroundRoleHintergrund
Qt::ForegroundRoleforeground
Qt::CheckStateRolecheckState
Qt::AccessibleTextRolezugänglicherText
Qt::AccessibleDescriptionRoleaccessibleDescription
Qt::SizeHintRolesizeHintRoleNam

Siehe auch TableModel und TableView.

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