QML按属性名称字符串访问对象属性



我想在重复组件中创建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] 的东西

相关内容

  • 没有找到相关文章

最新更新