Here is the example you can try (if the link ever die):

import QtQuick 2.7
import QtQuick.Controls 2.3

Rectangle
{
    color: "red"
    anchors.fill: parent

    Row
    {
        Button
        {
            text: "test"
            onClicked:
            {
                a_.allo['toto'] = "changed";
                a_.alloChanged(); // require for value to be considered
                a_.allo['toto'] = "ignored";
            }
        }

        Button
        {
            id: b_
            text: "test2"
            onClicked:
            {
                text = "yaga";
            }
        }
    }

    Text {
        id: a_
        text: "Test: " + allo['toto'] + " Test2: " + allo["baba"]
        font.pixelSize: 50
        color: "white"
        anchors.centerIn: parent
        readonly property var allo: { "toto": "yeah", "baba": b_.text}
    }
}

Jérôme Godbout, B. Ing.

Software / Firmware Team Lead
O: (418) 682-3636 ext.: 114
C: (581) 777-0050
godbo...@dimonoff.com<mailto:godbo...@dimonoff.com>
[signature_969455327]<https://www.dimonoff.com/>
dimonoff.com<https://www.dimonoff.com/>
1015 Avenue Wilfrid-Pelletier,
Québec, QC G1W 0C4, 4e étage


From: Interest <interest-boun...@qt-project.org> on behalf of Jérôme Godbout 
<godbo...@amotus.ca>
Date: Monday, May 31, 2021 at 3:00 PM
To: Alexander Dyagilev <alervd...@gmail.com>, interest@qt-project.org 
<interest@qt-project.org>
Subject: Re: [Interest] QML defining an object property
This should be working (at least into 5.15.x). Binding value into the object 
should emit the changed normally.

Take care if you want a binding to react to values changed inside the 
dictionary/object inside you property, you will need to emit the change on the 
property.

Normally an easy way is to copy the value and modify it and reassign it. But 
here since you are readonly you cannot do that.

Try to emit changed when a dependencies is modified or when you set the value 
inside it.

Ex:
Function myEditFct()
{
    mainTbImg[‘up’] = “popo”;
    mainTbImgChanged(); // this is the missing piece often forgotten
}

Here an example that display the behavior
https://tinyurl.com/yg7ykwc4



From: Interest <interest-boun...@qt-project.org> on behalf of Alexander 
Dyagilev <alervd...@gmail.com>
Date: Monday, May 31, 2021 at 1:57 PM
To: interest@qt-project.org <interest@qt-project.org>
Subject: [Interest] QML defining an object property

Hello,

Am I right that this is not possible in QML?

readonly property var mainTbImg: {

        up: "some string",

        up_check: "some another string"

    }
_______________________________________________
Interest mailing list
Interest@qt-project.org
https://lists.qt-project.org/listinfo/interest

Reply via email to