2016-10-18 33 views
1

下面是從文檔的例子StatePropertyChanges財產PropertyChanges:如何申請一個名爲「目標」

State { 
    name: "resized"; when: mouseArea.pressed 
    PropertyChanges { target: rect; color: "blue"; height: container.height } 
} 

以改變target屬性標識的對象,和PropertyChanges地圖1其他屬性以1爲目標對象的屬性。

但是,如果一個人想了一個名爲上footarget屬性更改爲bar,天真的事情將是PropertyChanges { target: foo; target: bar },我敢肯定是行不通的。

有沒有辦法將PropertyChanges的目標從其目標的目標中消除?

回答

2

有一點調整,這是沒有問題的。 如果您無法自己在targettobject創建時將其別名,請在如下狀態下執行它:

Rectangle { 
    id: rect 
    property int target: 20 
    x: target 
    y: target 
    width: target 
    height: target 
    color: 'orchid' 

    states: State { 
     id: altState 
     name: 'alternative' 
     property alias mytarget: rect.target 
     PropertyChanges { 
      target: altState 
      mytarget: 50 
     } 
    } 

    MouseArea { 
     anchors.fill: parent 
     onClicked: parent.state = 'alternative' 

    } 
}