2016-10-30 13 views
0

ドラッグ可能な項目を動的に作成することによってアイテムをドロップ領域にドラッグするツリービューがあります。私はそれが空になるドロップイベント(drop.textフィールド)からMIMEデータを取得しようとすると、私はmimedata動的なqmlオブジェクトの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()); 
    } 
} 

を渡すことはできませんを除いてすべてが動作します。

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") 
    } 
} 
+0

「DragEvent.formats」が必要なのでしょうか? docs: 'このプロパティは、ドラッグデータに含まれているMIMEタイプのリストを保持しています。 ' – folibis

+0

@folibis私はdraggedItem.Drag.mimeData = {" text/plain ":" Hello! " }; – amplifier

答えて

0

自分で解決しました!追加するだけです

draggedItem.Drag.active = true; 
関連する問題