Item {
id: test
Component.onCompleted: console.log("this is ", this, test)
}
上面的代码输出显示了指向 Item 的相同指针,那么 QML 中的this
关键字是什么?这是最近的QML组件的指针,可以与id
一起使用吗?
this
是一个引用 QML 对象的属性,但其作用域是局部的,不会到达子对象的作用域。
相反:
对象可以通过其
id
从声明它的组件范围内的任何位置引用。因此,标识值在其组件范围内必须始终唯一。
例如:在下面的代码中,观察到第二个项中的 this 是指项 2 而不是项 1。
Item{
id: item1
Component.onCompleted: {
console.log("item1")
console.log(this === item1)
console.log(this === item2)
}
Item{
id: item2
Component.onCompleted: {
console.log("item2")
console.log(this === item1)
console.log(this === item2)
}
}
}
输出:
qml: item1
qml: true
qml: false
qml: item2
qml: false
qml: true