QML中的'this'关键字是什么?

时间:2018-03-15 05:41:30

标签: qt qml qt5

groupBy($"Hour".as("KeyHour"), $"Category".as("KeyCategory"))

上面的代码输出显示了与Item相同的指针,那么QML中的Item { id: test Component.onCompleted: console.log("this is ", this, test) } 关键字是什么? 这是最近的QML组件的指针,可以和this一样使用吗?

1 个答案:

答案 0 :(得分:16)

this是一个引用QML对象的属性,但其范围是本地的,不会达到子代的范围。

相反:

  

对象可以由其id从声明它的组件范围内的任何位置引用。因此,标识值在其组件范围内必须始终是唯一的。

例如: 在下面的代码中,观察到第二个Item中的this指的是item2而不是item1。

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