2016-08-03 14 views
1

を更新していません。同じことがQt-Creatorの例としても利用できます。インデックスは、ダイナミックビューの構成例では、私は<a href="http://doc.qt.io/qt-5/qtquick-tutorials-dynamicview-dynamicview3-example.html" rel="nofollow noreferrer">dynamically re-arrange-able view</a>について読ん

私は私のデータベースでは、この更新並び替え順をバック保存したかったです。私は、インデックス値をチェックするためのカラム定義に余分な行を追加した:

 Column { 
       id: column 
       anchors { fill: parent; margins: 2 } 

       Text { text: 'Name: ' + name } 
       Text { text: 'Type: ' + type } 
       Text { text: 'Age: ' + age } 
       Text { text: 'Size: ' + size } 
       Text { text: 'Rank: ' + index } // Added to test the index values 
      } 

しかし、私は、再配置要素の後に、指標値がUIと同様表示されていることを実感します。そのインデックスは変わらないのでしょうか?または、テキストのバインドが正しく機能していないし、再配置後に更新されたインデックス値が表示されていませんか?

前:

enter image description here

最上位要素(ポリー)を少し下に移動した後:

enter image description here

私はそれを理解する方法、ランクは常に0から表示されるはずですインデックス値がこの順序になるため、並べ替えに関係なく、上から下に移動するときに最高値に設定されます。

答えて

1

事はPetModelの元のインデックスです。あなたの代理人に表示されるindexです。これを納得させるには、例をわずかに変更するだけです。

PetsModel { 
    id: petsModel 
} 

DelegateModel { 
    id: visualModel 
    model: petsModel 
    delegate: dragDelegate 
} 

... 

ListView { 
    id: view 
    anchors { fill: parent; margins: 2; rightMargin: parent.width/2+2 } 
    model: visualModel 
    spacing: 4 
} 

ListView { 
    id: view2 
    anchors { fill: parent; margins: 2; leftMargin: parent.width/2+2 } 
    model: petsModel 
    delegate:dragDelegate 
    spacing: 4 

} 

あなたはviewでの項目を移動する方法に関係なく、view2の実際の項目の順序は同じままであることがわかります。

実際PetModelへのプロキシとして動作しDelegateModel(一種のようなQSortFilterProxyModel

プロキシインデックスを表示したい場合は、添付dragArea.DelegateModel.itemsIndexプロパティを使用

Column { 
    id: column 
    anchors { fill: parent; margins: 2 } 

    Text { text: 'Name: ' + name } 
    Text { text: 'Type: ' + type } 
    Text { text: 'Age: ' + age } 
    Text { text: 'Size: ' + size } 
    Text { text: 'Index: ' + index } 
    Text { text: 'Display Index: ' + dragArea.DelegateModel.itemsIndex } 
} 
関連する問題

 関連する問題