我有一个QML的C++插件,它有一些属性,我想知道是否有一些文档关于在下面的QML代码中调用函数的顺序:
MyCustomThing {
propertyA: 20 // Will putting this line first guarantee A before B?
propertyB: 30
}
Run Code Online (Sandbox Code Playgroud)
在我的机器上,事情以我期望的相反顺序发生(在这种情况下B在A之前,即在QML中最后出现的内容是调用的第一件事),但是知道这是否在不同平台上是一致的会很好 - 并且理想的记录在某处.
是否有任何文档指定QML对象构造期间函数调用的顺序?
谢谢!
我假设您想要在两者都做某事propertyA
并将propertyB
其设置为qml文件中声明的值.
您可以覆盖QQuickItem :: componentComplete.当所有属性都设置为初始值时,将调用它.只是不要忘记在重写方法的开头调用超类.
void MyCustomThingItem::componentComplete()
{
QQuickItem::componentComplete();
// continue initialization
myCustomInit(m_propertyA, m_propertyB); // guaranteed to be 20 and 30
}
Run Code Online (Sandbox Code Playgroud)
编辑:QML等价物将是:
MyCustomThing {
propertyA: 20
propertyB: 30
Component.onCompleted: {
myCustomInit(propertyA, propertyB); // 20, 30
}
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1499 次 |
最近记录: |