Important: Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

setContextProperty takes very long and blocks UI



  • Hey,

    I am calling "setContextProperty" with a bigger data structure. It is not extremely big (A list with about 100 entries), but it takes several seconds until the call finished.

    AND because I have to do that in the main thread, the complete UI is blocked in that time. So what can I do?

    Thanks!



  • Hey,

    I discovered: It is not setting the data itself. It is the UI structure, that displays the data that takes so long. So I tried disabling the UI Display (It is a ListView) by setting its model to [] while I am loading. But now, re-enabling the UI Display takes long.

    What can I do?


  • Lifetime Qt Champion

    Hi,

    What kind of list is ?



  • It is a list of QObjects, which themself each contain a list of QObjects. But I found the error!

    The code was like this (pseudo code):

    ListView {
        model: cppData
        delegate: ListView {
            model: innerData
            delegate: Item {
                 Rectangle {...}
                 DropShadow {
                     ...
                    visible: isActiveObject
                }
            }
        }
    }
    

    So I was creating a lot of DropShadows. Also only one was visible, that was the problem. Removing the DropShadows solved it.


Log in to reply