一、同一层
与代码编写顺序相反,如下图构造顺序是:item_2->item_1
ps:虽然item_2比item_1先构造,但是布局的时候item_1可以使用其他item_2的属性【x、y等】
二、不同层
从里到外,如下图构造顺序是:rect_1->rect1
三、QML继承
//A.qml
Item {
consloe.log("A")
}
//B.qml
A {
consloe.log("B")
}
先打印A,再打印B,即先调用基类再调用子类
四、QML中有C++类
Item {
CPPClass {
property: 123
}
}
先调用CPPClass的构造函数,再传值【property】过去,最后调用Item的构造。
需要注意这种情况,我们可能需要传一个QML对象到CPPClass中,然后希望在C++的构造函数中访问这个qml对象,根据这个构造顺序我们在C++构造函数中访问qml对象时它还没有传过来,所以需要加一个延时。。。