特にListModelの移動機能に関しては、ListModelとListViewに少し問題があります。私はちょうどそれをデバッグするためにいくつかの変更とSDKに含まれ、動的リストの例から、あなたのコードスニペットが表示されます: コード:QML ListViewとListModelのインデックス
Item {
property alias nameText: nameTextBox.text
id: delegateItem
width: listView.width; height: 55
clip: true
Row {
anchors.verticalCenter: parent.verticalCenter
spacing: 10
Column {
Image {
source: "content/pics/arrow-up.png"
MouseArea {
anchors.fill: parent;
onClicked: {
var voice
var nameInModel
var nameInView
voice = listView.contentItem.children[1]
nameInModel = fruitModel.get(1).name
nameInView = voice.nameText
console.log("name before move in model at 1: "+nameInModel)
console.log("name before move in list at 1: "+nameInView)
fruitModel.move(index, index-1, 1)
voice = listView.contentItem.children[1]
nameInView = voice.nameText
nameInModel = fruitModel.get(1).name
console.log("name after move in model at 1: "+nameInModel)
console.log("name after move in list at 1: "+nameInView)
}
}
}
....
ので、画像「コンテンツ/写真/矢印-up.png」をクリックしたときモデルの1つの項目が1つ上の位置に移動します。例では、「Apple」 - 「Banana」 - 「Cumqat」 - 「Durian」の4つの項目があり、これはconsol.logの結果です。その商品を最初の位置に移動させる「バナナ」をクリックします:
名前で移動する前に1:バナナ 名前が1でリストに移動する前に:Apple 名前の後に1:アップルモデルで
名の移動前に:1のリストに移動した後名前:アップル
は、これは私がアップルをクリックした場合何が起こるかである(現在は2位になっていること)第一の位置に移動します1:アップル 名1のリストに移動する前に:1で、リスト内の移動後のバナナ 名::1のモデルでは、移動後のApple 名アップル
だから、すべての最初のそれは明らかであることの最初のインデックスListViewの最初のインデックスが1の間、ListModelは0ですが、モデル内のアイテムは移動されていますが、リスト内のアイテムは移動していないことが明らかです。 これは私の問題です。「名前」はTextEditのテキストで、ListViewデリゲートにはTextEditが含まれており、ユーザーがその名前を編集できるとします。私はそのテキストを取りたい場合は、私は私がこれを行うことができることを知っている: コード:
for (var i = 0; i <= myListView.count; i++){
myItem= myListView.contentItem.children[i]
myName = myListView.name
しかし、ここで問題があるが、私のリストビューでのListModelの移動機能を使用してアイテムを移動する可能性もありますしかし、アイテムを移動して前のサイクルを使用して「名前」を取ると、何も変わらないように見えます(DynamicListの例とまったく同じです)。一方 、私は「名前」を取る場合は使用して:私はテキストエディットでテキストを変更し、私は「名前」を取るしようとすると、
myName= myListModel.get(i).name
は、その後、何も思わない
を変更するには、それで、TextEditでリストビューを取得し、itemsofを移動する可能性を持って、何か変更を記録できるのですか?
私はちょうどこの使い、あなたは間違ってそれをやっているGiammarco
FWIW、ライン33 'falseを入力=;'与えますが'input'が左辺値ではないというエラーです。私はまだその行が何をしているのか、それが何であるべきかを理解していない。 –
ありがとう@SteveFallows私はそれを修正しました。 – TheBootroo