当 QML 对象不可见时阻止 QML 属性 绑定?

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

我正在开发一个具有大量 属性 绑定的 QML 应用程序:数百个对象被跟踪并以不同的形式显示,例如 Qt3D/QCanvas。

当我在应用程序的单独页面上时,属性 对 x/y 位置和相对大小的绑定仍在发生。我怎样才能阻止他们?我知道我可以根据它们是否可视化来绑定属性,但这是很多不必要的代码:

x:可见? tracking.location(索引).x : 0

我将不得不包装大量这样的绑定。还有其他解决方案吗?

您可以使用 Binding 元素。您可以指定目标、属性、值和条件来激活绑定。

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

您也可以使用 Loader{} 并将 active 属性 设置为 false。这将禁用整个项目。