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」をトリガーさせることはできません。
トリガーするには何をしなければなりませんか?
Drag オブジェクトで drop()メソッド を呼び出して、ドロップを明示的に生成する必要があるようです
drag.target: parent
のすぐ上のMouseArea
内にこの行を追加してみてください
onReleased: parent.Drag.drop()