浅谈 Qml Loader使用

浅谈 Qml Loder使用

Performance 一直是令人头疼的问题,最近的一个项目对性能的要求比较高,Qml中大量控件的使用导致画面加载的时间不能直视。
Loder 可以实现在需要的时候进行加载,为异步加载提供了可能。为优化Performance提供了一个很好的解决方案。
话不多说,开始说明下Loader的使用~~

Loader 示例代码:

 Loader{
     id: loaderTest
     asynchronous: true
     sourceComponent: idTestComponent // 指定加载对象
     active: false
     onLoaded: {
          // 加载完成时可以通知cpp做其他处理
     }
 }

idTestComponent示例代码:

Component{
    id: idTestComponent
    Item{
        visible:false
        Rectangle {
            width: 200
            height: 50
            color: "red"
            Text {
                text: "testPage"
                anchors.fill: parent
            }
        }
    }
}

我们可以使用State来控制Loader的active状态:

states:
[
    State {
        name: "LoadActive"
        PropertyChanges {target: loaderTest;  sourceComponent: idTestComponent;  active: true}
    }
]

在cpp中通过SetProperty 控制Loader的加载,当然至于什么时候进行加载要视你的需要来定了,可以起Timer也可以收到某个事件之后~~

注意点:如果你需要在Cpp中对Loader中加载的对象进行操作时,一定要等到onLoaded状态之后,因为这时Loader加载的所有qml对象才创建完毕。

有关Loder的使用方法还有很多,这里我只是介绍了一下我的使用方法,希望能对大家有所帮助。如果以上有见解有误,还请批评指正。下次再见~~

你可能感兴趣的:(Qt,qml,qt,c++)