aboutsummaryrefslogtreecommitdiffstats
path: root/src/quick/doc/snippets/qml/tableview/editdelegate.qml
diff options
context:
space:
mode:
Diffstat (limited to 'src/quick/doc/snippets/qml/tableview/editdelegate.qml')
-rw-r--r--src/quick/doc/snippets/qml/tableview/editdelegate.qml95
1 files changed, 95 insertions, 0 deletions
diff --git a/src/quick/doc/snippets/qml/tableview/editdelegate.qml b/src/quick/doc/snippets/qml/tableview/editdelegate.qml
new file mode 100644
index 0000000000..11de5f5434
--- /dev/null
+++ b/src/quick/doc/snippets/qml/tableview/editdelegate.qml
@@ -0,0 +1,95 @@
+// Copyright (C) 2022 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import QtQuick
+import QtQuick.Window
+import QtQuick.Controls
+import QtQml.Models
+import Qt.labs.qmlmodels
+
+Window {
+ width: 480
+ height: 640
+ visible: true
+ visibility: Window.AutomaticVisibility
+
+//![0]
+ TableView {
+ id: tableView
+ anchors.fill: parent
+ clip: true
+
+ model: TableModel {
+ TableModelColumn { display: "name" }
+ rows: [ { "name": "Harry" }, { "name": "Hedwig" } ]
+ }
+
+ selectionModel: ItemSelectionModel {}
+
+ delegate: Rectangle {
+ implicitWidth: 100
+ implicitHeight: 50
+
+ Text {
+ anchors.centerIn: parent
+ text: display
+ }
+
+ TableView.editDelegate: TextField {
+ anchors.fill: parent
+ text: display
+ horizontalAlignment: TextInput.AlignHCenter
+ verticalAlignment: TextInput.AlignVCenter
+ Component.onCompleted: selectAll()
+
+ TableView.onCommit: {
+ display = text
+ // 'display = text' is short-hand for:
+ // let index = TableView.view.index(row, column)
+ // TableView.view.model.setData(index, text, Qt.DisplayRole)
+ }
+ }
+ }
+ }
+//![0]
+
+ TableView {
+ id: tableView1
+ anchors.fill: parent
+ clip: true
+
+ model: TableModel {
+ TableModelColumn { display: "name" }
+ rows: [ { "name": "Harry" }, { "name": "Hedwig" } ]
+ }
+
+ selectionModel: ItemSelectionModel {}
+
+//![1]
+ delegate: Rectangle {
+ implicitWidth: 100
+ implicitHeight: 50
+
+ required property bool editing
+
+ Text {
+ id: textField
+ anchors.fill: parent
+ anchors.margins: 5
+ text: display
+ visible: !editing
+ }
+
+ TableView.editDelegate: TextField {
+ x: textField.x
+ y: textField.y
+ width: textField.width
+ height: textField.height
+ text: display
+ TableView.onCommit: display = text
+ }
+ }
+//![1]
+ }
+
+}