Quantcast
Channel: Active questions tagged qtquick2 - Stack Overflow
Viewing all articles
Browse latest Browse all 148

qt qml. Can a MouseArea see events, but pass them all to parent without affecting them?

$
0
0

An inner MouseArea gets the mouse events first. I would like to "see" these events, so as to set various properties, but not affect them. I would like the mouse events to propagate to any parent MouseArea.

consider this code. I would like clicking on the blue square to see "blue pressed" and "blue released" as well as passing to "parent pressed" and "parent released".

If i accept the event, the parent does not get it. if i don't accept pressed, then i do not see released.

import QtQuick 2.7import QtQuick.Controls 1.4ApplicationWindow{    visible: true    width: 800    height: 1024    Rectangle    {        anchors.fill: parent        color: "yellow"        MouseArea        {            // i want these to happen even when mouse events are in the            // blue square            anchors.fill: parent            onPressed: console.log("parent pressed");            onReleased: console.log("parent released");        }        Rectangle        {            x: 100            y: 100            width: 100            height: 100            color: "blue"            // i would like to "see" events, but not affect them            // i want all mouse events to pass to parent, as if i am not here.            // however, not accepting "pressed" means i don't see "released"            MouseArea            {                anchors.fill: parent                onPressed:                {                    console.log("blue pressed");                    mouse.accepted = false                }                onReleased:                {                    console.log("blue released");                    mouse.accepted = false                }            }        }    }}

ideas welcome. thanks,


Viewing all articles
Browse latest Browse all 148

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>