Ich möchte eine QML-Bindung in einer wiederholten Komponente erstellen. Ich möchte den Wert eines der Elemente an eine Eigenschaft eines bekannten Objekts binden. Mein Problem ist, dass der Name der Eigenschaft, an die ich binden möchte, als String in der Komponente zur Verfügung gestellt wird. Wie kann ich den Eigenschaftsnamen in eine tatsächliche Eigenschaft auflösen, die als Wert in einer Bindung verwendet werden kann?Eigenschaft des QML-Zugriffsobjekts nach Eigenschaftsname string
PS. Wenn möglich, könnte ich die Eigenschaft direkt an den Repeater übergeben, aber dann würde ich gerne die Eigenschaft in eine Zeichenkette umwandeln können, weil ich beides brauche und nicht beide weitergeben möchte.
EDIT: Hier ist, was ich will:
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
}
}
uns Zeigen Sie, was Sie bisher versucht. – dtech
@ddriver Ich habe nichts wirklich probiert, weil ich an nichts denken kann, das sogar funktionieren könnte – Gerharddc
Es muss nicht funktionieren, es nur um Absicht und Anstrengung zu veranschaulichen. – dtech