[Development] QProperty and when evaluation occurs

Stottlemyer, Brett (B.S.) bstottle at ford.com
Fri Jul 24 13:45:08 CEST 2020

Hi Volker,

´╗┐On 7/23/20, 3:13 PM, "Volker Hilsheimer" <volker.hilsheimer at qt.io> wrote:
    But why would we calculate the volume if nobody cares about the volume? :)

Qt Remote Objects.  I've got a headless service on one device, and a remote UI for interacting with it.  When signals are emitted (property change or otherwise) by the service, the results are forwarded to the remote UI.

Lazy evaluation probably works fine if the bindings are on the UI side, but things break down if they are on the service side.  That was why I was trying to distinguish between derived properties _on a QObject_ vs bindings in a QML UI.
   FWIW, pull-based systems are *much* more scalable than push-based systems, because data is produced at the rate it can be consumed, not at the rate it can be produced. That is unrelated to polling.

That's only true if you know when you need to pull data.  Otherwise it _becomes_ polling.  Also, I think you are assuming the pull is blocking, which is not always valid.

How will logging work?  I often connect a lambda to a changed signal to troubleshoot or log something.  If such a routine were debug or troubleshooting only, wouldn't that build behave fundamentally differently (one doing immediate eval because of the signal connection, the other not)?.


More information about the Development mailing list