QtObject、QObject
首先,C++ 是一门的语言,QML 也是一门语言。这两种语言都有「类」的概念。
C++ 中称为「class」,QML 中称为「QML Type」。
但是官网 instantiates 这个词就看不懂了,难道说 QtObject 是 QObject 的一个实例?搞不懂!
姑且认为 QML 中的 QtObject 与 C++ 中的 QObject 等价吧!
细细一看,QtObject 有唯一属性 string objectName,QObject 也有唯一属性 QString objectName 。
真的有点等价的感觉。
Window、QQuickWindow
一句话:QML 中的 Window 等价于 C++ 中的 QQuickWindow。
C++ 的 QQuickWindow
它的继承树是:QObject、QWindow、QQuickWindow。
- QObject 有1个属性:QString objectName。
- QWindow 有16个属性:
QQuickWindow 有三个属性:
注意,这里的属性都是私有属性,哪怕像 height,也不能直接访问,需要对应的 public 方法 height() .
QML 的 Window
官方文档居然没有 objectName 这个属性,但是可用不报错,搞不懂!
QML 的 Window 属性包含所有 C++ 的 QQuickWindow 属性,并且额外还加了几个:
data : list