TableModelColumn QML 類型

錶示模型中的列。 更多...

import 語句: import Qt.labs.qmlmodels

詳細描述

The TableModelColumn class represents columns in TableModel . TableModel supports JavaScript/JSON data where each row is an object, a list of simple key-value pairs where the keys are unordered.

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

However, models in Qt are manipulated via row and column indices. Specifying the columns with TableModelColumn allows a mapping between Qt's built-in roles to any property in each row object.

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 also has basic read-only support for complex rows. For more information, see 支持行數據結構 .

注意: Most of the above concepts also apply to TreeModel , except in TreeModel each row represents a node of the tree.

支持角色

TableModelColumn 支持所有 Qt 角色 ,除瞭 Qt::InitialSortOrderRole . Roles can be accessed by as listed below, e.g.

text: display
required property string display
					
Qt::DisplayRole display
Qt::DecorationRole decoration
Qt::EditRole edit
Qt::ToolTipRole toolTip
Qt::StatusTipRole statusTip
Qt::WhatsThisRole whatsThis
Qt::FontRole font
Qt::TextAlignmentRole textAlignment
Qt::BackgroundRole background
Qt::ForegroundRole foreground
Qt::CheckStateRole checkState
Qt::AccessibleTextRole accessibleText
Qt::AccessibleDescriptionRole accessibleDescription
Qt::SizeHintRole sizeHintRoleNam

另請參閱 TableModel and TableView .