State.when vs Item.state属性

时间:2016-03-04 21:28:13

标签: qt qml qtquick2

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状态评估已停止。

有没有办法以某种方式“恢复”到“何时”状态评估?

1 个答案:

答案 0 :(得分:1)

评估状态的when属性:

  • 最初创建一组州时
  • 当状态when被更改时(通过设置,或者其中一个when绑定依赖于更改的任何属性)

所以不,你不能真的"重置"它。如果可以避免,我建议不要混用这两种方法。