矩形上的 QML 拖动不捕获事件

QML Drag on Rectangle doesn't capture events

我正在尝试完成一个简单的图像拖动,当拖动完成或开始时触发一个事件。

Rectangle {
    id: upperFooter
    color: "transparent"
    Layout.alignment: Qt.AlignLeft | Qt.AlignBottom
    Drag.onDragFinished: onDragFinished()
    Drag.dragType: Drag.Automatic
    width: 800
    height: 40
    Image {
        height: 40
        width: upperFooter.width
        source: "qrc:///images/footer/background_footer.svg"
        MouseArea {
            id: iconMouseArea
            x: 390
            y: 10
            anchors.fill: parent
            onClicked: toggleHiddenBar()
            drag {
                target: upperFooter
                axis: Drag.YAxis

            }
        }
    }

upperFooter 项上的事件未触发。

QML: onDragStarted / finished not called even though the drag property is active --> 我试过将 Drag.type 放在 Drag.Automatic 上来解决这个问题,但仍然不起作用。

QtQuick 2.6 版 布局 1.3 QML 5.6

我通过向 MouseArea 添加显式 dragActive 属性 解决了这个问题。所以在你的情况下代码将是:

MouseArea {
    id: iconMouseArea
    drag {
        target: upperFooter
        axis: Drag.YAxis
    }

    property bool dragActive: drag.active

    onDragActiveChanged: {
        if(drag.active) { //
            ... // Dragging started
        } else {
            ... // Dragging finished
        }
    }
}