Qt 如何访问QML listview委托内的数据?

Qt 如何访问QML listview委托内的数据?,qt,qml,Qt,Qml,如何获取listview中的数据。我有一个QML列表视图,在delagate中有一个文本字段。我应该如何调用listview的delagate中textfield中的文本 ListView { id:listview model: 10 delegate: Component{ id:component Item{ id:item Tex

如何获取listview中的数据。我有一个QML列表视图,在delagate中有一个文本字段。我应该如何调用listview的delagate中textfield中的文本

    ListView {
        id:listview
        model: 10
        delegate: Component{
           id:component

           Item{
              id:item

              Textfield{
                  id:textfield
              }
        }
    }

    Button{
        onClicked:{

           for(var i=0 ; i<listview.model; i++){
                myfunc(     )    <---- textfield at index i text to be put here
           }
        }
    }
ListView{
id:listview
型号:10
代表:组成部分{
id:组件
项目{
id:项目
文本字段{
id:textfield
}
}
}
钮扣{
再次点击:{

对于(var i=0;i您的方法不正确,您必须通过模型访问数据,但您的模型是只读的,也就是说,它永远不会被修改,您必须使用ListModel或QabstracteModel

import QtQuick 2.9
import QtQuick.Window 2.2
import QtQuick.Controls 1.4

Window {
    visible: true
    width: 640
    height: 480
    title: qsTr("Hello World")
    ListModel{
        id: mymodel
        Component.onCompleted: {
            for(var i=0; i< 10; ++i){
                mymodel.append({"text": ""})
            }
        }
    }
    ListView {
        id:listview
        height: contentHeight
        model: mymodel
        delegate: TextField{
            id:textfield
            onTextChanged: model.text = text
        }
    }
    Button{
        text: "Press me"
        anchors.top: listview.bottom
        onClicked:{
            for(var i=0 ; i<mymodel.count; i++){
                console.log(mymodel.get(i).text)  // <---- textfield at index i text to be put here
            }
        }
    }
}
导入QtQuick 2.9
导入QtQuick.Window 2.2
导入QtQuick.Controls 1.4
窗口{
可见:正确
宽度:640
身高:480
标题:qsTr(“你好世界”)
列表模型{
id:mymodel
Component.onCompleted:{
对于(变量i=0;i<10;++i){
mymodel.append({“text”:“”})
}
}
}
列表视图{
id:listview
高度:内容高度
型号:mymodel
代表:文本字段{
id:textfield
onTextChanged:model.text=text
}
}
钮扣{
文字:“按我”
anchors.top:listview.bottom
再次点击:{

对于(var i=0;虽然我对您最初使用的方法感到困惑,但现在我完全理解:)在项目中,我实际制作的模型是动态的。我只是增加模型以获得更多行,但这种方法实际上更好