我已经将委托绑定到包含
问题在于委托
它确实可以,但现在我不能再捕获双击事件(在
MouseArea
的TableViewColumn
。我使用MouseArea
来检测表格中单元格的双击事件,这使我可以显示TextField
以进行编辑。问题在于委托
MouseArea
会阻止鼠标事件传播到TableView
。这意味着TableView
的选择行为不再起作用。具体而言,我启用了SelectionMode.ExtendedSelection
。
MouseArea
子项很简单,最初是这样的:MouseArea{
id: mousearea
anchors.fill: parent
onDoubleClicked: {
showTextField()
}
}
在查询了文档后,看起来这应该可以工作:
MouseArea{
id: mousearea
anchors.fill: parent
propagateComposedEvents: true // new
onDoubleClicked: {
showTextField()
}
onPressed: mouse.accepted = false // new
}
它确实可以,但现在我不能再捕获双击事件(在
MouseArea
中)了!这很有道理,因为文档后面指出:似乎没有办法在pressed(MouseEvent mouse)
处理此信号时,请使用鼠标参数的accepted属性来控制此MouseArea是否处理按下和所有后续鼠标事件,直到释放。默认情况下接受事件并不允许其他位于其下方的MouseArea处理该事件。如果将accepted设置为false,则该MouseArea将不会收到更多事件,直到下次按下该按钮。
TableView
级别上捕获单个单元格的鼠标事件。这是我第一天尝试使用QML,所以可能错过了一些明显的东西,但我的选择是什么?请注意,我正在使用PyQt。
MouseAreas
重叠在哪里,您希望每个MouseArea
的行为是什么? - derM