最近项目用到QQmlParserStatus,这个类型提供当被QQmlEngine创建时,在创建的不同时机给予通知。
class Q_QML_EXPORT QQmlParserStatus
{
public:
QQmlParserStatus();
virtual ~QQmlParserStatus();
virtual void classBegin()=0;
virtual void componentComplete()=0;
private:
friend class QQmlComponent;
friend class QQmlComponentPrivate;
friend class QQmlEnginePrivate;
friend class QQmlObjectCreator;
QQmlParserStatus **d;
};
主要是两个接口,classBegin 在该类型创建后,但是任何属性没有赋值的时候调用。componentComplete在根组件Complete后调用,此时,静态变量和绑定值已经赋值给该类型。
QQuickLoader就是在componentComplete里load。QQuickRepeater在componentComplete中创建元素。