簡體   English   中英

QML Access對象屬性按屬性名稱字符串

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM