当具有MouseArea的对象被具有MouseArea的另一个对象部分覆盖时,上部对象阻止onEntered信号被下部矩形接收。
我怎样才能解决这个问题,让下层对象可以在所有点接收onEntered?
e.g。让我们说我有2个矩形,都有一个MouseArea,上面的矩形覆盖了下方矩形的右下角。在下面的代码中,如果鼠标从右下角进入lowerRect(即当它已经在upperRect中时),则lowerRect不会检测onEntered。
Rectangle {
id: lowerRect
x: 0
y: 0
width: 100
height: 100
color: "blue"
MouseArea {
anchors.fill: parent
hoverEnabled: true
onEntered: console.log("lowerRect was entered")
}
}
Rectangle {
id: upperRect
x: 50
y: 50
width: 100
height: 100
color: "green"
opacity: 0.8
MouseArea {
anchors.fill: parent
hoverEnabled: true
onEntered: console.log("upperRect was entered")
}
}
答案 0 :(得分:0)
mouseX
&上方矩形的mouseY
属性MouseArea
x
,y
,width
和height
。< / LI>
注意:强>
onEntered()
仅在鼠标指针进入QML组件时跟踪鼠标位置。当矩形重叠时,它不会在特定时间发射。因此,请使用onPositionChanged()
信号编写逻辑。