动态qml对象的Mimedata始终为空

时间:2016-10-30 23:53:37

标签: qt qml qtquick2

我有一个树视图,通过动态创建可拖动项目,我可以将项目拖动到拖放区域。除了我无法通过mimedata外,一切正常

function createItem(parentItem)
{
    if (itemComponent.status === Component.Ready && draggedItem == null)
    {
        draggedItem = itemComponent.createObject(
            parentItem,
            {
                "x": positionInParent.x,
                "y": positionInParent.y,
                "baseColor":Qt.lighter("red", 1.5),
                "copyable":false,
                visible: true
            }
        );

        draggedItem.Drag.mimeData = { "text/plain": "Hello!" };
        draggedItem.Drag.supportedActions = Qt.CopyAction;
        draggedItem.Drag.dragType = Drag.Automatic;
        draggedItem.Drag.start();
    }
    else if (itemComponent.status === Component.Error) {
        draggedItem = null;
        console.log("error creating component");
        console.log(itemComponent.errorString());
    }
}

当我尝试从drop事件(drop.text字段)获取mime数据时,它是空的。

DropArea
{
    height:parent.height
    width:parent.width
    onDropped: {
        drop.acceptProposedAction()
        var txt = drop.text; // Empty!!!
        console.log("dropped into dest")
    }
    onEntered: {
        console.log("entered dest")
    }
}

1 个答案:

答案 0 :(得分:0)

我自己解决了!只是添加

draggedItem.Drag.active = true;