- 好吧,我正在尝试在listView中列出具有两个文本和一个复选框的项目。
- 我想在选中复选框时添加商品的价格。
- 为此,我需要知道 listView 的项目的索引,以便我可以得到 它的"价格",我可以存储数据。
- 我无法通过复选框获取列表的当前索引,因为它的行为为 单个实体。
- 但是,如果我放置鼠标区域,我可以获取索引,但我需要通过复选框获取它。
供参考:
Component { // delegate
id:_delegate
Rectangle{
width: 100
height: 50
color: "beige"
border.color: "black"
Text {
id: _textid
text: name
}
Text {
id: _textid2
anchors.top: _textid.bottom;anchors.topMargin: 5
anchors.left: _textid.left
text: price
}
CheckBox {
id:_checkbox
anchors.top:parent.top;anchors.topMargin: 5
anchors.left: parent.left;anchors.leftMargin: 50
}
}
您可以使用 onCheckedChanged 事件,然后从模型中获取当前索引的价格,如下所示:
Component { // delegate
id:_delegate
Rectangle{
width: 100
height: 50
color: "beige"
border.color: "black"
Text {
id: _textid
text: name
}
Text {
id: _textid2
anchors.top: _textid.bottom;anchors.topMargin: 5
anchors.left: _textid.left
text: price
}
CheckBox {
id:_checkbox
anchors.top:parent.top;anchors.topMargin: 5
anchors.left: parent.left;anchors.leftMargin: 50
onCheckedChanged: {
_textid2.text = _checkbox.checked ? your_model.get(index).price : ""
}
}
}