setProperty value by object and propertyname
-
Hey guys,
I have the following problem:
I want to create a textEdit-component which implements a two-way binding.Lets say I have a c++ object with several Q_PROPERTYs.
Now I need a textEdit for each of this properties with a two way binding.
Normally I can do something like this for each text Element:1. TextInput: { id: t1 ... onTextChanged: myObject.setText1(text) } Connections { target: myObject onTextChanged1: t1.text = myObject.text1 }
My idea is to pass an object and a property name to a custom TextInput.
So I want to do all the other handling inside my custom component.CustomComponent { target: targetObject property: text1 }
How can I set a property by name and object in qml?
Is there a function like setProperty(object, "property") within qml?CU
mts -
@themts said in setProperty value by object and propertyname:
How can I set a property by name and object in qml?
Is there a function like setProperty(object, "property") within qml?object[property] = value
works, where property is a string representation of the property name.
eg:t1["text"] = myObject.text1
-
Is there a function like setProperty(object, "property") within qml?
AFAIK no such way in QML. But if
CustomComponent
is a registered C++ class then you can use setProperty function for that object. -
Hi
I could find a solution that is working for me quite well:
property alias target : targetBinding.target property alias property : targetBinding.property Binding { id: targetBinding } Binding { id: sourceBinding target: item1 property: "text" value: (item1.property != "") && (item1.target != undefined) ? item1.target[item1.property] : "" } onEditingFinished: { if (property == "") return; targetBinding.value = text; }
It would be nice if qt will get a built-in two way binding in future (see wpf).
CU