I am trying to use Mousearea in my rectangle in QML. I am getting onPressed, OnCLicked, onDoubleClicked and onPositionChanged.
But, QML does not receive onReleased event. Can you guys let me know, why its not working? My code below:
Rectangle {
width: parent.width
height: 500
MouseArea {
id: mouseArea
anchors.fill: parent
hoverEnabled: true
preventStealing: true
onPositionChanged: {
// console.log("onPositionChanged mouse X", mouse.x)
// console.log("onPositionChanged mouse Y", mouse.y)
mouse.accepted = false;
}
onClicked:{
console.log("onClicked mouse X", mouse.x)
console.log("onClicked mouse Y", mouse.y)
mouse.accepted = false;
}
onDoubleClicked:{
console.log("onDoubleClicked mouse X", mouse.x)
console.log("onDoubleClicked mouse Y", mouse.y)
mouse.accepted = false;
}
onExited:{
console.log("onExited")
}
onPressAndHold:{
console.log("onPressAndHold mouse X", mouse.x)
console.log("onPressAndHold mouse Y", mouse.y)
mouse.accepted = false;
}
onPressed:{
console.log("onPressed mouse X", mouse.x)
console.log("onPressed mouse Y", mouse.y)
mouse.accepted = false;
}
onReleased:{
console.log("onReleased mouse X", mouse.x)
console.log("onReleased mouse Y", mouse.y)
mouse.accepted = false;
}
onCanceled:{
console.log("onCanceled mouse X", mouse.x)
console.log("onCanceled mouse Y", mouse.y)
mouse.accepted = false;
}
}
}
As per the event behaviour in this docs.
When handling this signal, changing the accepted property of the mouse parameter has no effect.
So if you comment the lines mouse.accepted = false;
in above code It ill work.
Working code below
MouseArea {
id: mouseArea
anchors.fill: parent
hoverEnabled: true
preventStealing: true
onReleased:{
console.log("onReleased mouse X", mouse.x)
console.log("onReleased mouse Y", mouse.y)
}
}