如何从qml的listview中获取一些currentItem的角色?

时间:2017-01-24 07:45:01

标签: qt listview qml

如何从qml中的listview中获取一些currentItem的角色?

类似的东西:

ListView {
    id: listview
    model: myModel
    delegate: Item {
        property variant myData: model
        Text {
            text: model.text
        }
        Text {
            text: model.moreText
        }
    }
    onCurrentIndexChanged:{
        listview.currentItem[currentIndex].myData.text
        listview.currentItem[currentIndex + 1].myData.text
        listview.currentItem[currentIndex + 2].myData.text
    }
}

3 个答案:

答案 0 :(得分:2)

目前还没有一个好的“通用”方法,所以答案取决于你的模型类型。例如,如果您正在使用ListModel,则可以使用ListModel::get。如果您使用的是C ++模型,我建议您查看this question上的答案。

答案 1 :(得分:1)

从几个currentItem?不是currentItem单数吗? currentItem指向当前选中的 Item,而不是Item s 的列表。

也许你想要这个:

myModel.get(currentIndex + i).myRole

答案 2 :(得分:0)

如果您知道模型的角色索引,则可以执行myModel.data(myModel.index(currentIndex, 0), roleIndex)