更改属性的默认值(例如异步)

Changing default values for properties (e.g. asynchronous)

对于许多应用程序,尤其是在低性能机器上,使用内置组件(例如 LoaderImage)设置异步加载它们的资源是有益的。为此,有两个明显的选择:

  1. 设置内置组件需要的属性,即asynchronous: true
  2. 创建一个自定义组件 AsyncXXX 基本上包含以下内容:

AsyncXXX.qml:

XXX {
    asynchronous: true
}

其中 XXX 是 LoaderImage

我想知道为什么他们没有默认设置为异步模式。

最重要的是,有没有办法 - 一个环境变量,一个全局设置 - 将内置组件的默认行为更改为异步行为,从而避免自定义组件?

您可以轻松创建 ASLoaderASImage QML 类型,它们只是 LoaderImageasynchronous: true 并在整个项目中使用它们。这将使你不必在任何地方修改它,如果你想覆盖它,你只需在原型中更改它。

I wonder why they are not set to asynchronous mode by default.

异步总是更复杂,开销更大,所以如果它不是默认行为,它是有意义的。从我看到的 QML 代码来看,同步的使用频率远高于异步,因此将异步设为默认值意义不大。

编辑:

如果将原型绑定到项目范围 属性,例如上下文 属性 或 [=25=,则还可以在运行时实现同步和异步行为之间的切换] 在 main.qml.