Sur cette page

TableModelColumn QML Type

Représente une colonne dans un modèle. En savoir plus…

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 dont 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, dans Qt, les modèles sont manipulés via des indices de lignes et de colonnes. La spécification des colonnes avec TableModelColumn permet d'établir un mappage 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 une prise en charge de base en lecture seule pour les lignes complexes. Pour plus d’informations, consultez 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’arborescence.

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 comme indiqué ci-dessous, par exemple

text: display

required property string display
Qt::DisplayRoledisplay
Qt::DecorationRoledecoration
Qt::EditRoleedit
Qt::ToolTipRoletoolTip
Qt::StatusTipRolestatusTip
Qt::WhatsThisRolequ'est-ce que c'est
Qt::FontRolepolice
Qt::TextAlignmentRolealignement du texte
Qt::BackgroundRolearrière-plan
Qt::ForegroundRolepremier plan
Qt::CheckStateRoleétat de sélection
Qt::AccessibleTextRoletexte accessible
Qt::AccessibleDescriptionRoledescription accessible
Qt::SizeHintRoleindication de taille, nom du rôle

Voir également 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.