[英]QML Access object property by property name string
我想在重复的组件中创建QML绑定。 我想将元素之一的值绑定到已知对象的属性。 我的问题是,要绑定到的所述属性的名称将在组件中作为字符串提供。 如何将属性名称解析为可以在绑定中用作值的实际属性?
PS。 如果可以的话,我想我可以将属性直接传递给中继器,但是我希望能够将属性转换为字符串,因为我既需要又不想传递两者。
编辑:这就是我想要的:
ListModel {
id: settingsModel
ListElement { title: "Bed Width"; setting: "bedWidth"; }
ListElement { title: "Bed Length"; setting: "bedLength"; }
}
Component {
id: settingsDelegate
Item {
width: parent.width
height: childrenRect.height
Label {
id: setLabel
text: title + ":"
width: parent.width
}
TextBox {
id: setTBox
anchors.top: setLabel.bottom
anchors.topMargin: 5
width: parent.width
Binding on text {
when: !setTBox.isActive
value: settings.setting
}
Binding {
target: settings
property: setting
value: setTBox.text
}
}
}
}
Column {
id: settingsColumn
spacing: 10
anchors.left: parent.left
anchors.right: parent.right
anchors.top: txtSave.bottom
anchors.topMargin: 15
Repeater {
model: settingsModel
delegate: settingsDelegate
}
}
我的问题是,要绑定到的所述属性的名称将在组件中作为字符串提供。 如何将属性名称解析为可以在绑定中用作值的实际属性?
如果查看Binding
文档,您会发现property
属性需要一个字符串property : string
因此,您没有什么要解决的,这是内部发生的。
我的问题是“值:settings.setting”行
您可以尝试类似settings[setting]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.