更改属性的默认值(例如异步)
Changing default values for properties (e.g. asynchronous)
对于许多应用程序,尤其是在低性能机器上,使用内置组件(例如 Loader
和 Image
)设置异步加载它们的资源是有益的。为此,有两个明显的选择:
- 设置内置组件需要的属性,即
asynchronous: true
- 创建一个自定义组件
AsyncXXX
基本上包含以下内容:
AsyncXXX.qml:
XXX {
asynchronous: true
}
其中 XXX 是 Loader
或 Image
。
我想知道为什么他们没有默认设置为异步模式。
最重要的是,有没有办法 - 一个环境变量,一个全局设置 - 将内置组件的默认行为更改为异步行为,从而避免自定义组件?
您可以轻松创建 ASLoader
和 ASImage
QML 类型,它们只是 Loader
和 Image
与 asynchronous: true
并在整个项目中使用它们。这将使你不必在任何地方修改它,如果你想覆盖它,你只需在原型中更改它。
I wonder why they are not set to asynchronous mode by default.
异步总是更复杂,开销更大,所以如果它不是默认行为,它是有意义的。从我看到的 QML 代码来看,同步的使用频率远高于异步,因此将异步设为默认值意义不大。
编辑:
如果将原型绑定到项目范围 属性,例如上下文 属性 或 [=25=,则还可以在运行时实现同步和异步行为之间的切换] 在 main.qml
.
对于许多应用程序,尤其是在低性能机器上,使用内置组件(例如 Loader
和 Image
)设置异步加载它们的资源是有益的。为此,有两个明显的选择:
- 设置内置组件需要的属性,即
asynchronous: true
- 创建一个自定义组件
AsyncXXX
基本上包含以下内容:
AsyncXXX.qml:
XXX {
asynchronous: true
}
其中 XXX 是 Loader
或 Image
。
我想知道为什么他们没有默认设置为异步模式。
最重要的是,有没有办法 - 一个环境变量,一个全局设置 - 将内置组件的默认行为更改为异步行为,从而避免自定义组件?
您可以轻松创建 ASLoader
和 ASImage
QML 类型,它们只是 Loader
和 Image
与 asynchronous: true
并在整个项目中使用它们。这将使你不必在任何地方修改它,如果你想覆盖它,你只需在原型中更改它。
I wonder why they are not set to asynchronous mode by default.
异步总是更复杂,开销更大,所以如果它不是默认行为,它是有意义的。从我看到的 QML 代码来看,同步的使用频率远高于异步,因此将异步设为默认值意义不大。
编辑:
如果将原型绑定到项目范围 属性,例如上下文 属性 或 [=25=,则还可以在运行时实现同步和异步行为之间的切换] 在 main.qml
.