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