<div dir="ltr">Hi all, <div><br></div><div>I have a Q_GADGET-based class with properties that I instantiate in C++ and expose to qml via QVariant in a list model. The class is registered to Qt and Qml using Q_DECLARE_METATYPE,</div><div>qRegisterMetaType and qmlRegisterUncreatableType. </div><div><br></div><div>The properties are defined like this:</div><div><br></div><div>class MyGadget {</div><div>Q_GADGET</div><div>Q_PROPERTY(Type propName MEMBER propName)</div><div>public:</div><div>Type propName;</div><div>... etc</div><div>};</div><div><br></div><div>In QML I can read the properties just fine. </div><div><br></div><div>Now I'd like to take one of these gadget-objects in QML, modify some of it's properties and then use it as an argument when calling a Q_INVOKABLE c++ function. </div><div><br></div><div>In qml code this looks something like </div><div><br></div><div>property var theGadget // with a property .name = "Name"</div><div><br></div><div>function doStuff() {</div><div>   var o = theGadget;</div><div>   console.log("<a href="http://o.name">o.name</a>"); // prints "Name"</div><div>   <a href="http://o.name">o.name</a> = "Some other name";</div><div>   console.log("<a href="http://o.name">o.name</a>"); // Still prints "Name" instead of "Some other name"</div><div>   backend.setNewGadget(o);</div><div>}</div><div><br></div><div>Trying to set any of the gadget object's properties does not have any effect. The value of property "name" here is the same before and after the assignment. Are Q_GADGET types to be considered read-only in QML, or am I missing something else to make this work? </div><div><br></div><div>This is using Qt 5.9.0. </div><div><br></div><div>Best regards,<br>Ola </div><div><br></div><div><br></div><div><br></div></div>