简体   繁体   中英

Prevent QML Property Bindings when QML object isn't visible?

I'm working on a QML application that has a lot of property bindings: hundreds of objects are tracked and displayed in different forms like Qt3D/QCanvas.

When I'm on a separate page of the application those property bindings for x/y locations and relative sizes are still happening. How can I stop them? I know I could bind the properties based on whether they're visual or not but that is a lot of unnecessary code:

x: visible ? tracking.location(index).x : 0

I would have to wrap a ton of bindings like that. Any other solutions?

You can use the Binding element. You can specify target, property, value and condition to activate the binding.

Binding on x {
    value: tracking.location(index).x
    when: visible
}

You can also use Loader{} and set active property to false. This will disable the whole item.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM