QML:如何在项目参数chenge上触发一个事件(并传递给它的值)?

时间:2012-04-25 11:01:18

标签: qt qml

我有一个带有值参数的项目。我想知道如何抓住它的变化事件?

假设有一个RectComp.qml:

Item{
    property alias currentX: rect.x
       Rectangle {
           id: rect
           x: 617
           y: 450
       }
}

从创建其实例的应用程序处理其currentX更改说明如何

       Rectangle {
           id: host
           x: 617
           y: 450
           RectComp{ id: MyRC}
           OnMyRCcurrentXChange(int){log("hello!")}
       }

1 个答案:

答案 0 :(得分:4)

根据Qt文档“向项目添加属性会自动将值更改的信号处理程序添加到项目中。”

因此,您的代码将更改为以下

 Rectangle {
       id: host
       x: 617
       y: 450
       RectComp{ id: MyRC
         onCurrentXChanged:{
             console.log("Hello");
         }
       }
   }

或者您可以使用Connection元素

 Connections {
     target: MyRC
     onCurrentXChanged: {
        console.log("Hello");
     }
 }