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

时间:2016-11-08 15:26:54

标签: qt qml qtquick2

对于许多应用程序,尤其是在低性能计算机上,使用内置组件(例如LoaderImage)设置以异步加载其资源是有益的。要做到这一点,有两个明显的选择:

  1. 设置内置组件的必需属性,即asynchronous: true
  2. 基本上使用以下内容创建自定义组件AsyncXXX
  3. AsyncXXX.qml:

    XXX {
        asynchronous: true
    }
    

    其中XXX为LoaderImage

    我想知道为什么默认情况下它们没有设置为异步模式。

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

1 个答案:

答案 0 :(得分:3)

您可以轻松制作CDATAASLoader QML类型ASImageLoader Image,并在整个项目中使用这些类型。这将使您无需在任何地方修改它,如果您想要覆盖它,您只需在原型中更改它。

  

我想知道为什么默认情况下它们没有设置为异步模式。

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

编辑:

如果将原型绑定到项目范围的属性(例如上下文属性或asynchronous: true中的属性),您还可以在运行时期间实现同步和异步行为之间的切换。