我需要每行都有一个带有 InputText 的 Listview。用例是一个购物车,其中每行的数量都可以更改。
使用下面的代码,Listview 在旁边呈现一个标签和一个文本框。
问题是,所有文本框都将具有相同的 id,因此,所有文本框值都根据最后一个文本框值更改而更改。例如:如果我为第一项输入 10,为第二项输入 12,则即使第一项的数量也会更改为 12。
onEnter仅用于演示。它可能是onFocusChanged前进:
ListView {
id:list
model: fruitModel
x:10
y:10
width: parent.width-20
height: parent.height-20
clip:true
anchors.fill: parent
delegate: Row {
width: parent.width
height:30
Item
{
property variant myData: model
property alias value: text.text
Text {
id:text
width: parent.width
height: 30
text:name
}
InputText {
id: inp_box
text:qty
width:100
height:22
anchors.verticalCenterOffset: 15
anchors.horizontalCenterOffset:250
focus: true
onEnter: {
editQty(inp_box.text);
}
}
}
}
focus: true
snapMode: ListView.SnapOneItem
ScrollBar {
flickable: list
vertical: true
hideScrollBarsWhenStopped:false
}
}