C++ 在qml文件中添加矩形对象时会发生什么?

C++ 在qml文件中添加矩形对象时会发生什么?,c++,qml,C++,Qml,当我添加一个矩形时,后面会发生什么 Rectangle{ width:40 heigh: 40 color:"blue" } 在qml文件中 什么调用了什么,并绘制了一个蓝色矩形? 机制是什么?你能建议我读点什么吗?我找不到。 谢谢你总的来说: -> parse Qml code -> create QDeclarativeItems -> add to QDeclerativeView's scene -> call items standard s

当我添加一个矩形时,后面会发生什么

Rectangle{
 width:40
 heigh: 40
 color:"blue"

}
在qml文件中

什么调用了什么,并绘制了一个蓝色矩形? 机制是什么?你能建议我读点什么吗?我找不到。 谢谢你

总的来说:

 -> parse Qml code 
 -> create QDeclarativeItems
 -> add to QDeclerativeView's scene
 -> call items standard slot like onCreated()
 -> call the QDeclarativeItems paint method etc     
在assistant-qt4(主要的qt文档助手)中键入QGraphicsRectItem,然后意识到qml代码“矩形”最终创建了一个矩形,您会有一种温暖的感觉。Qt4 QtQuick实现目前是QGraphicsView/QGraphicscene的精简抽象。如上所述,步骤相同:

 -> create QGraphicsItems
 -> add to QGraphicsView's scene 
 -> call QGraphicsItem paint method etc
这些类都有非常好的文档记录,一旦你理解了它们的原理,你就可以继续研究它们向QDecrative*等的演变。不幸的是,后者的文档在某些细节上有所欠缺,但总体上非常有用。当然,还有更多,但一旦您意识到源自QGraphicsView/-Scene类的QtQuick演变,其他一切都会更加符合逻辑。然后,对源代码(缺少文档的地方)的一瞥会让您感觉更有方向性——因为您知道解析后的标记最终如何融合到QGraphicscene中创建的QGraphicsSitem中(QDeclarativeView,…)


祝你好运

-1分?为什么?我真的在谷歌上搜索过,这是诺基亚不想让任何人知道的秘密吗?如果有一份关于QML如何在引擎盖下工作的白皮书就好了,但也许没有的原因是因为它仍在快速发展。我认为Qt源是目前最好的参考。。本例中的矩形是一个QDeclarativeItem,您正在绘制的“画布”可能是一个QDeclarativeView。您可以在/src/declarative/util和/src/declarative/graphicsitems中找到这些