qml drag and drop with separate windows
Solved
QML and Qt Quick
-
Hi.
I have 2 windows in my app.
When I use drag and drop in one window - all work fine.
But I can't get drop signal in second windows. And mouse icon showing drap only in one window.Tree { id: tree filterClassType: [ EnumsLibrary.objectTypes.TDevice, EnumsLibrary.objectTypes.TModule, EnumsLibrary.objectTypes.TSensor ] headerVisible: false autoExpand: false itemDelegate: Item { id: objectTree Text { id: objectTreeName property var params: styleData.value property string type: "tree" anchors.verticalCenter: parent.verticalCenter anchors.left: parent.left color: "black" elide: styleData.elideMode text: styleData.value['Name'] !== undefined ? styleData.value['Name'] : "ИМЯ НЕ УСТАНОВЛЕНО" // Drag.keys: [ "any" ] Drag.active: mouseAreaTree.drag.active Drag.hotSpot.x: 1 Drag.hotSpot.y: 10 // Drag.mimeData: params Drag.mimeData: {"text/plain": "Copied text"} Drag.onActiveChanged: { console.log("444444444444444444444444444444444444", Drag.active) if (Drag.active) { // Drag.imageSource = "qrc:/assets/add_window.svg" } } } // states: State { // when: mouseAreaTree.drag.active // ParentChange { target: objectTreeName; parent: root } // AnchorChanges { target: objectTreeName; anchors.verticalCenter: undefined; anchors.left: undefined } // } MouseArea { id: mouseAreaTree anchors.fill: parent drag.target: objectTreeName onReleased: { objectTreeName.Drag.drop() objectTreeName.parent = objectTreeName.Drag.target !== null ? objectTreeName.Drag.target : objectTree } onDoubleClicked: { dataModel.dispatcher.switchToTabObjects() /// TODO при открытии объекта, слева в сайдбаре этот элемент также должен быть выделен /// (как будто по нему кликнули) objectsController.objectClicked( styleData.value['Uuid_'] ) } } } }
-
Hi.
I have 2 windows in my app.
When I use drag and drop in one window - all work fine.
But I can't get drop signal in second windows. And mouse icon showing drap only in one window.Tree { id: tree filterClassType: [ EnumsLibrary.objectTypes.TDevice, EnumsLibrary.objectTypes.TModule, EnumsLibrary.objectTypes.TSensor ] headerVisible: false autoExpand: false itemDelegate: Item { id: objectTree Text { id: objectTreeName property var params: styleData.value property string type: "tree" anchors.verticalCenter: parent.verticalCenter anchors.left: parent.left color: "black" elide: styleData.elideMode text: styleData.value['Name'] !== undefined ? styleData.value['Name'] : "ИМЯ НЕ УСТАНОВЛЕНО" // Drag.keys: [ "any" ] Drag.active: mouseAreaTree.drag.active Drag.hotSpot.x: 1 Drag.hotSpot.y: 10 // Drag.mimeData: params Drag.mimeData: {"text/plain": "Copied text"} Drag.onActiveChanged: { console.log("444444444444444444444444444444444444", Drag.active) if (Drag.active) { // Drag.imageSource = "qrc:/assets/add_window.svg" } } } // states: State { // when: mouseAreaTree.drag.active // ParentChange { target: objectTreeName; parent: root } // AnchorChanges { target: objectTreeName; anchors.verticalCenter: undefined; anchors.left: undefined } // } MouseArea { id: mouseAreaTree anchors.fill: parent drag.target: objectTreeName onReleased: { objectTreeName.Drag.drop() objectTreeName.parent = objectTreeName.Drag.target !== null ? objectTreeName.Drag.target : objectTree } onDoubleClicked: { dataModel.dispatcher.switchToTabObjects() /// TODO при открытии объекта, слева в сайдбаре этот элемент также должен быть выделен /// (как будто по нему кликнули) objectsController.objectClicked( styleData.value['Uuid_'] ) } } } }
@Mihaill need using
Item { id: draggable anchors.fill: parent Drag.dragType: Drag.Automatic // Drag.keys: [ "any" ] Drag.active: mouseAreaTree.drag.active Drag.hotSpot.x: 1 Drag.hotSpot.y: 10 Drag.mimeData: params // Drag.mimeData: {"text/plain": "Copied text"} Drag.onActiveChanged: { console.log("444444444444444444444444444444444444", Drag.active) if (Drag.active) { // Drag.imageSource = "qrc:/assets/add_window.svg" } else { Drag.drop() } } }
-