13

MouseAreaの positionChanged イベントを基になるイベントに伝播することは可能ですか?

最上位の既存のシグナルハンドラーにtoを設定するだけでなく、 mouse.acceptedtoを設定しようとしました。どちらも機能しませんでした (ただし、ドキュメントには、 、 などのイベントのみを中継すると記載されているため、機能しないことに驚かないでください)。falseMouseAreapropagateComposedEventstruepropagateComposedEventsclickeddoubleClickedpressAndHold

4

2 に答える 2

1

複数のマウス領域で同時に位置変更イベントを処理する必要がない限り、上のマウス領域の親を変更してみてください:

import QtQuick 2.2
import QtQuick.Layouts 1.1

Rectangle {
    id: __root
    color: "lightgreen"
    width: 360
    height: 360

    Rectangle {
        id: rect2
        width: 100; height: 100
        color: "cyan"
        MouseArea {
            parent: __root // set 'logical' parent
            anchors.fill: rect2 // set 'visual' ancestor
            hoverEnabled: true

            onPositionChanged: {
                console.log('mouse area 2 onPositionChanged');
            }
        }
    }


    MouseArea {
        anchors.fill: parent
        hoverEnabled: true

        onPositionChanged: {
            console.log('mouse area 1 onPositionChanged');
        }
    }
}

未解決のバグレポートがあります。

于 2014-05-22T01:38:03.277 に答える