版本:Qt6.5.0
在一个MouseArea覆盖到另外一个MouseArea的时候上面的MouseArea会优先处理鼠标产生的信号。同样的道理当上层没有开启hoverEnabled的时候,上层的MouseArea并不会处理鼠标坐标的相关信号,如果下层会处理那么就自然交给下层处理。
但是对于clicked这种信号我们需要用mouse.accepted = false;来处理来让下层MouseArea处理鼠标事件(下面还有坑)
MouseArea {
onClicked: (mouse) => {
mouse.accepted = false;
}
}
但是其实我们发现这样并没有什么卵用,因为涉及到底层处理的原因,与Click相关的信号也必须设置为mouse.accepted = false; 比如pressed信号和released信号,这两个信号是实现clicked信号的关键,所以这两个也必须这样干:mouse.accepted = false;