独立封装外观对QWidget是很重要的,QML中的组件概念也保留了这个观点.如果生成一个完整的应用程序,需要由一致的外观风格,需要创建一系列可重用的具有期望外观的组件....为实现这个可重用按钮,需要简单的创建一个QML组件....这些组件几乎都可以在QML中直接创建.只有几个对象需要特殊的事件处理,如Flickable,需要在C++中实现....QML组件和QWidget的parent概念最明显区别在于,子项位置是相对于父项的,但不会要求子项完全包含在父项中(当然可在必要时设置子项的clipped属性).这个差异具有深远的影响,例如:
围绕部件的阴影或高亮可作为部件的子项...UI,例如要进行过度,推荐使用 QDeclarativeItem子类(也可同时使用QGraphicWidget).允许在C++中轻松的为每个C++组件创建一个根项 LayoutItem,向场景中加载独立的