我有TableView
代表,其中包含MouseArea
。我想将点击传播到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
}
}
答案 0 :(得分:0)
由于您重新定义了项目委托,因此您还应该实现项目选择。 我通常会这样做:
onClicked: {
tableView.selection.clear();
tableView.selection.select(styleData.row);
}
答案 1 :(得分:0)
如果您不介意使用onPressed
事件代替onClicked
进行用户互动,则宣传该事件还可以在TableView
中进行选择(包括{{ 1}}模式,如果需要):
ExtendedSelection