I have a main drop area which when loaded creates a new rectangle component dynamically. The newly created rectangle component is draggable inside the drag area. But, I don't know how to get the coordinates of the new rectangle component on the drag area when the rectangle is dragged/dropped.
EDIT I somehow need the new coordinate data in the Drop Area code
Code for the Drop Area
import QtQuick 2.15
import QtQuick.Controls 2.15
import QtQuick.Layouts 1.3
Page{
id: page1
// On Dropped
function onDropAreaDropped(drag){
console.log(JSON.stringify(drag))
}
// On Entered
function onDropAreaEntered(drag){
console.log(JSON.stringify(drag))
}
// This is the Drop area code
Rectangle{
id: dropRectangle
color: "beige"
width: parent.width
height: parent.height
DropArea {
id: dropArea
anchors.fill: parent
onEntered: onDropAreaEntered(drag)
onDropped: onDropAreaDropped(drag)
}
// This creates the new rectangle component
Component.onCompleted: {
var dynamicRectangle2 = Qt.createComponent("Test2.qml");
dynamicRectangle2.createObject(parent, {x:100, y: 100})
}
}
}
Code for Test2.qml
- Rectangle component
import QtQuick 2.15
import QtQuick.Controls 2.15
Page {
id : somepageid
Rectangle{
id:dragRect
height: 40
width: 60
color: "blue"
// Need this x and y coordinate data in the drop area component
onXChanged: {
console.log(dragRect.x)
}
onYChanged: {
console.log(dragRect.y)
}
MouseArea{
id: mArea
anchors.fill: parent
drag.target: dragRect
}
}
}