以下是来自文档的示例State
和PropertyChanges
:
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
目标与其目标的歧视?
答案 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'
}
}