2016-09-26 5 views
0

View delegate(特にRepeater)から 'modelData'にアクセスする方法はありますか?QMLのデリゲート内のmodelDataにアクセス

別のプロパティを使用しようとしましたが、 'model.modelData'経由でアクセスしようとしましたが、どちらも機能しませんでした。

以下のコードスナップショットをご覧ください。

ありがとうございます。 //doc.qt:

Component 
{ 
    id: comp_1 
    Rectangle 
    { 
     color: "green" 
     width: 200 
     height: 200 
    } 
} 

Component 
{ 
    id: comp_2 
    Rectangle 
    { 
     color: "red" 
     width: 200 
     height: 200 

     Text 
     { 
      anchors.fill: parent 
      text: modelData 
      horizontalAlignment: Text.AlignHCenter 
      verticalAlignment: Text.AlignVCenter 
     } 
    } 
} 



function getDelegate(itemName) 
{ 
    if(itemName === "comp1") 
     return comp_1; 
    else 
     return comp_2; 
} 

Row 
{ 
    Repeater 
    { 
     id: repeat 

     model: ["comp1", "comp2"] 

     Loader 
     { 
      sourceComponent: getDelegate(modelData) 
     } 
    } 
} 
+0

にmodelDataをデリゲート要素

Component { id: comp_1 Rectangle { property string valueFromModel } } 

にプロパティを追加し、結合することができます。 io/qt-5/qtquick-modelviewsdata-modelview.html#アクセスビューとモデルの代理人から)ページ? – folibis

答えて

3

は、あなたは、[この](HTTPを見たこと

Loader { 
    id: loader 
    Binding { 
     target: loader.item 
     property: "valueFromModel" 
     value: model.modelData 
    } 
} 
関連する問題