1.控件的创建过程
解析.layout文件的时候,会生成控件,控件的数据大致是在4个步骤里面被填充的:
(1)控件的构造函数,这个里面一般只注册属性;
(2)WidgetLookFeel::initialiseWidget函数,这个函数里面会使用相应的LookNFeel信息填充控件,具体而言就是设置状态图片,增加子控件,添加属性,设置属性等;
(3)Window::initialiseComponent函数,这个是一个虚函数,不同的控件可以通过重载做特定的事;
(4)上述三步在解析layout文件遇到<Window>节点时会发生,<Window>节点里面还有<Property>等子节点,最后一步就是根据这些节点对控件进行设置。
2.控件的销毁过程
销毁过程只有两步:
(1)WidgetLookFeel::cleanUpWidget函数,这个函数里面销毁子控件,反注册属性;
(2)控件的析构函数。
3.AutoWindow节点
在layout文件中有一种节点叫AutoWindow,我之前一直没搞明白它是干什么的,现在搞懂了。
有些控件不是在layout文件中直接指定的,例如FrameWindow的TitleBar,它是在生成FrameWindow对象的时候,被系统自动生成的,所以叫AutoWIndow,而layout文件中AutoWindow节点就是对这种控件进行一些设置。