[英]QML TableView Mouse area does not propagate click to selection model
我有一个包含有MouseArea
的委托的TableView
。 我想将点击传播到TableView
以便项目选择仍然有效。 但是,由于存在MouseArea
,因此无法在TableView
选择元素。 我该如何更改?
TableView {
id: tableView
model: testModel
selectionMode: SelectionMode.SingleSelection
Component {
id: testDelegate
Item {
id: delegateItem
Text{
id: ctext
text: styleData.value
color: styleData.textColor
}
MouseArea {
id: mouseArea
acceptedButtons: Qt.LeftButton | Qt.RightButton
anchors.fill: parent
propagateComposedEvents: true
onClicked: {
console.log("click");
mouse.accepted = false
}
}
}
}
TableViewColumn {
role: "TestRole"
delegate: testDelegate
}
}
由于您重新定义了项目委托,因此您还应该实现项目选择。 我通常按如下方式进行:
onClicked: {
tableView.selection.clear();
tableView.selection.select(styleData.row);
}
如果您不介意使用onPressed
事件而不是onClicked
进行用户交互,则传播事件还将允许在TableView
进行选择(如果需要,包括ExtendedSelection
模式):
MouseArea {
// ...
onPressed: {
mouse.accepted = false
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.