Wie wird die TableViewColumn-Liste an die untergeordnete TableView weitergegeben?
Ich versuche, eine benutzerdefinierte Komponente für bearbeitbare Tabellen in QML zu erstellen:
// BaseTableView.qml
import QtQuick 2.3
import QtQuick.Controls 1.2
Item {
signal addActionPerformed()
signal editActionPerformed(int id)
signal deleteActionPerformed(int id)
property var model
ToolBar {
id: toolBar
anchors.left: parent.left
anchors.right: parent.right
Row {
ToolButton {
id: addButton
iconSource: "qrc:/icons/actions/add.png"
onClicked: addActionPerformed()
}
ToolButton {
id: editButton
enabled: false
iconSource: "qrc:/icons/actions/edit.png"
}
ToolButton {
id: deleteButton
enabled: false
iconSource: "qrc:/icons/actions/delete.png"
}
}
}
TableView {
id: tableView
model: parent.model
anchors.left: parent.left
anchors.right: parent.right
anchors.top: toolBar.bottom
anchors.bottom: parent.bottom
onCurrentRowChanged: {
editButton.enabled = currentRow !== null
deleteButton.enabled = currentRow !== null
}
}
}
und benutze diese Komponente in einer anderen Datei wie dieser:
// Another.qml file
import QtQuick 2.3
import QtQuick.Controls 1.2
import "../common" // Here is BaseTableView.qml
BaseTableView {
TableViewColumn {
role: "id"
title: qsTr("Id")
}
TableViewColumn {
role: "object_expression"
title: qsTr("Expression")
}
}
Also, Problem ist, wie ich Tabellenansichtsspalten von der Verwendung an die zugrunde liegende TableView übergeben kann? Ich habe versucht, eine Eigenschaftsliste in BaseTableView zu erstellen und dieser Eigenschaft in Aother.qml eine Liste von Objekten zuzuweisen. aber erfolglos.