web-dev-qa-db-ja.com

QMLでのDroppedでのドラッグアンドドロップの例

Qmlのドキュメントには、 ドラッグアンドドロップの例 があります。

import QtQuick 2.0

Item {
    width: 200; height: 200

    DropArea {
        x: 75; y: 75
        width: 50; height: 50

        onDropped: console.log("dropped")
        onEntered: console.log("entered")

        Rectangle {
            anchors.fill: parent
            color: "green"

            visible: parent.containsDrag
        }
    }

    Rectangle {
        x: 10; y: 10
        width: 20; height: 20
        color: "red"

        Drag.active: dragArea.drag.active
        Drag.hotSpot.x: 10
        Drag.hotSpot.y: 10

        MouseArea {
            id: dragArea
            anchors.fill: parent

            drag.target: parent
        }
    }
}

「onDropped」と「onEntered」の2行を追加しました。 「onEntered」は小さな長方形をドラッグすることでトリガーされますが、「onDropped」をトリガーさせることはできません。

トリガーするには何をしなければなりませんか?

6
xubuntix

Drag オブジェクトで drop()メソッド を呼び出して、ドロップを明示的に生成する必要があるようです

drag.target: parentのすぐ上のMouseArea内にこの行を追加してみてください

onReleased: parent.Drag.drop()
10
David Planella