[Qt-qml] How to ignore MouseArea signals
Halton Huo
halton.huo at intel.com
Wed Dec 8 02:41:51 CET 2010
"enabled" does not match my case.
I need receive the MouseArea signals but as well as those below the top
item can receive the signals also.
Refer to MouseEvent element document, seems accepted can do that.
---------
accepted : bool
Setting accepted to true prevents the mouse event from being propagated
to items below this item.
Generally, if the item acts on the mouse event then it should be
accepted so that items lower in the stacking order do not also respond
to the same event.
But following code does not work as I wish
MouseArea {
anchors.fill: parent
onClicked: {
console.log("mouse.accepted="+mouse.accepted)
mouse.accepted = false
console.log("mouse.accepted="+mouse.accepted)
}
}
Thanks,
Halton.
On Wed, 2010-12-08 at 02:55 +0800, Adriano Rezende wrote:
> On Tue, Dec 7, 2010 at 4:31 AM, Halton Huo <halton.huo at intel.com> wrote:
> > So my questions how to ignore the received signals to let other items to
> > continue deal with those signals?
>
> You can set enabled property to false or ignore the event on mouse press.
>
> MouseArea {
> anchors.fill: parent
> onClicked: console.log("background clicked");
> }
>
> MouseArea {
> anchors.fill: parent
> enabled: false
> //onPressed: mouse.accepted = false;
> onClicked: console.log("foreground clicked");
> }
>
> Br,
> Adriano
More information about the Qt-qml
mailing list