我有几个状态,仅用于更改某些属性:
Item {
id: props
property int someProperty: 0
// ...
states: [
State {
name: "firstState"
PropertyChange {
target: props
someProperty: 1
// ...
}
},
State {
name: "secondState"
PropertyChange {
target: props
someProperty: 1
// ...
}
}
]
onStateChange: doSomething(someProperty)
}
由于不同的状态对于
someProperty
可能具有相同的值我不能依赖
somePropertyChange
信号,但我什至不能依赖
onStateChange
(如示例中所示),因为当它运行时,属性没有改变。
那我怎么能跑
doSomething()
每次状态改变?用
QML
有更好的方法来做这种事情?
请您参考如下方法:
您可以使用 StateChangeScript 运行一些脚本.
Item {
id: props
property int someProperty: 0
states: [
State {
name: "firstState"
PropertyChanges {
target: props
someProperty: 1
}
StateChangeScript {
name: "firstScript"
script: console.log("entering first state")
}
},
State {
name: "secondState"
PropertyChanges {
target: props
someProperty: 1
}
StateChangeScript {
name: "secondScript"
script: console.log("entering second state")
}
}
]
}