如何在名为" target"

时间:2016-10-18 19:18:08

标签: qml

以下是来自文档的示例StatePropertyChanges

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

要更改的对象在target属性中标识,PropertyChanges的其他属性将1对1映射到目标对象的属性。

但是如果想要将target上名为foo的属性更改为bar,那么幼稚的东西就是PropertyChanges { target: foo; target: bar },我确定不会#&# 39;工作。

有没有办法消除PropertyChanges目标与其目标的歧视?

1 个答案:

答案 0 :(得分:2)

稍微调整一下,这没问题。 如果您不能自己在targetobject创建中对其进行别名,请在类似的状态下执行:

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'

    }
}