qt - QML dictionary (jsobject, var) sub-properties notify -


is possible raise notify-method of var/variant/object/ (etc.) variables automatically during updating?

suppose have:

property var objects: {'obj1': 'unnamed', 'obj2': 'unnamed'} 

next have binding in, example, text:

text {     text: objects.obj1      ontextchanged: objects.obj1 = text } 

in ontextchanged want raise notify signal of objects variable update everywhere.

hm, if not mistaken, qml generates onobjectschanged signal handler objects not emitted when change objects internally, , due qml brilliant design, cannot emit objectschanged() manually, expected automatically emit, except doesn't. emits when property reassigned object.

you cannot create signal js object, since requires qobject derived class signals , therefore notifications , bindings.

you can force emit objectschanged() reassigning objects property new object new value obj1 , old value of obj2, force second text element update , show new value. not elegant, if need use js object, valid solution. otherwise have use qtobject element , qml properties obj1/2

property var objects: {'obj1': 'unnamed', 'obj2': 'unnamed'}  column {     spacing: 30      textedit {         text: objects.obj1         ontextchanged: {             objects = {'obj1': text, 'obj2': objects.obj2}         }     }      text {         text: objects.obj1     } } 

another possible solution not rely on notifications objects , use proxy property controller it.

property var objects: {'obj1': 'unnamed', 'obj2': 'unnamed'}     property string obj1: objects.obj1 onobj1changed: objects.obj1 = obj1   

this way don't use objects @ all, except storing data it, use obj1 property instead, , every time changed write changed objects without reassigning entire objects in first solution.

but unless need js objects, i'd recommend scrapping , using more qml friendly data representation..


Comments

Popular posts from this blog

python - mat is not a numerical tuple : openCV error -

c# - MSAA finds controls UI Automation doesn't -

wordpress - .htaccess: RewriteRule: bad flag delimiters -