QML when
类型的State
属性可用于控制何时应通过布尔表达式应用状态。
当我显式设置QML state
的{{1}}属性时,似乎覆盖了所有状态对象的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 = ""
}
}
的初始状态是“when state”,因为它由item
表达式确定。按下when
时,状态变为“显式状态”。释放鼠标按钮后,状态变为默认状态(“”)。似乎MouseArea
状态评估已停止。
有没有办法以某种方式“恢复”到“何时”状态评估?
答案 0 :(得分:1)
评估状态的when
属性:
when
被更改时(通过设置,或者其中一个when
绑定依赖于更改的任何属性)所以不,你不能真的"重置"它。如果可以避免,我建议不要混用这两种方法。