1
QML State
类型的when
属性可用于控制何时应通过布尔表达式应用状态。State.when vs Item.state属性
当我设置的QML的state
财产Item
明确,似乎覆盖所有状态对象的when
属性,如下面的代码:
Item {
id: item
anchors.fill: parent
states: [
State {
name: "when state"
when: 1 === 1
},
State {
name: "explicit state"
}
]
onStateChanged: console.log("state = " + state)
MouseArea {
anchors.fill: parent
onPressed: item.state = "explicit state"
onReleased: item.state = ""
}
}
的item
的初始状态是“时态”因为它是由when
表达式确定的。当按下MouseArea
时,状态变为“显式状态”。在释放鼠标按钮后,状态变为默认状态(“”)。看来when
状态评估已停止。
有什么办法可以“恢复”到“何时”状态评估?
也许像'onReleased:item.state = item.state'? – skypjack
不,不幸的是,根本不会改变状态。 – Florian