Sur cette page

TableModelColumn QML Type

Représente une colonne dans un modèle. Plus d'informations...

Import Statement: import Qt.labs.qmlmodels

Description détaillée

La classe TableModelColumn représente les colonnes dans TableModel. TableModel prend en charge les données JavaScript/JSON où chaque ligne est un objet, une liste de paires clé-valeur simples où les clés ne sont pas ordonnées.

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

Cependant, les modèles dans Qt sont manipulés via des indices de ligne et de colonne. La spécification des colonnes avec TableModelColumn permet d'établir une correspondance entre les rôles intégrés de Qt et n'importe quelle propriété de chaque objet de ligne.

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 offre également un support de base en lecture seule pour les lignes complexes. Pour plus d'informations, voir Supported Row Data Structures.

Remarque : la plupart des concepts ci-dessus s'appliquent également à TreeModel, sauf que dans TreeModel, chaque ligne représente un nœud de l'arbre.

Rôles pris en charge

TableModelColumn prend en charge tous les rôles de Qt's roles, à l'exception de Qt::InitialSortOrderRole. Les rôles sont accessibles de la manière suivante, par exemple

text: display

required property string display
Qt::DisplayRoleaffichage
Qt::DecorationRoledécoration
Qt::EditRoleéditer
Qt::ToolTipRoleinfo-bulle
Qt::StatusTipRoleinfo-bulle d'état
Qt::WhatsThisRolece qui est
Qt::FontRolepolice
Qt::TextAlignmentRolealignement du texte
Qt::BackgroundRolearrière-plan
Qt::ForegroundRolepremier plan
Qt::CheckStateRoleétat de vérification
Qt::AccessibleTextRoleaccessibleText
Qt::AccessibleDescriptionRoleaccessibleDescription
Qt::SizeHintRolesizeHintRoleNam

Voir aussi TableModel et TableView.

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