TableModelColumn QML Type
Represents a column in a model. More...
| Import Statement: | import Qt.labs.qmlmodels |
Detailed Description
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 Supported Row Data Structures.
Note: Most of the above concepts also apply to TreeModel, except in TreeModel each row represents a node of the tree.
Supported Roles
TableModelColumn supports all of Qt's roles, with the exception of 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 |
See also TableModel and TableView.