Qt 如何访问QML listview委托内的数据?
如何获取listview中的数据。我有一个QML列表视图,在delagate中有一个文本字段。我应该如何调用listview的delagate中textfield中的文本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 {
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;虽然我对您最初使用的方法感到困惑,但现在我完全理解:)在项目中,我实际制作的模型是动态的。我只是增加模型以获得更多行,但这种方法实际上更好