我想使用QtQuick
实现表格视图,允许在单元格级别进行多项选择,使用QTableView
和QAbstractItemView::SelectItems
模拟旧样式QAbstractItemView::ExtendedSelection
的行为标志已启用。
我可以使用哪个QtQuick
组件?
答案 0 :(得分:1)
TableView
仅允许默认选择行,但您可以通过自定义其单元委托(itemDelegate
)来覆盖选择行为。
首先,您必须使用以下命令禁用默认选择行为:
selectionMode: SelectionMode.NoSelection
然后在itemDelegate
你可以做类似的事情:
itemDelegate: Item {
property bool isSelected: false
// When user clicks on a cell, turn the isSelected flag on
MouseArea {
anchors.fill: parent
onClicked: isSelected = !isSelected
}
Text {
anchors.verticalCenter: parent.verticalCenter
// If this cell is selected, color the text in blue
color: isSelected ? "blue" : "black"
text: styleData.value
}
}
请注意,signals emitted的TableView
无效,因为您的单元格正在接受鼠标事件。但是,如果您需要它们,当然可以轻松实现它们。