相关控件:StateGroup
State状态是一组从默认配置批处理的变化。所有项目都可以通过将状态项添加到states属性来定义新状态,以允许项在不同配置之间切换。
本文: https://www.lovejia.win/blog/article/State.html
参考原文:http://doc.qt.io/qt-5/qml-qtquick-state.html
参考译文:http://blog.csdn.net/xuancailinggan/article/details/50913720
属性说明
changes : list
此属性保存要应用于此状态的更改
默认情况下,这些更改将应用于默认状态。如果状态扩展另一个状态,则针对正在扩展的状态应用改变。
extend : string
此属性保持此状态延伸的状态。
当状态扩展另一个状态时,它继承该状态的所有更改。
被扩展的状态被视为关于由扩展状态指定的改变的基本状态。
name : string
此属性保存状态的名称。
每个状态在其项目中应具有唯一的名称。
when : bool
此属性在应用状态时成立。
这应该设置为一个表达式,该表达式计算到true您希望应用状态的时间。
功能简述
State是一组从默认配置批处理的变化。
所有项目都有默认状态,定义对象和属性值的默认配置。可以通过将状态项添加到states属性来定义新状态,以允许项在不同配置之间切换。这些配置可以例如用于应用不同的属性值集合或执行不同的脚本。
例
以下示例显示单个矩形。在默认状态下,矩形被着色为黑色。在“点击”状态下,PropertyChanges对象将矩形的颜色更改为红色。在MouseArea中单击可以在默认状态和“已点击”状态之间切换矩形的状态,从而在黑色和红色之间切换矩形的颜色:
1 | import QtQuick 2.0 |
注意:请注意,使用空字符串(“”)引用默认状态。状态通常与转换一起使用,以在状态发生变化时提供动画。
不允许从同一对象的另一个状态中设置对象的状态。
下面示例矩形进出“隐藏”状态的改变时的鼠标区域被压:
1 | Rectangle { |
如果组中的多个状态具有when同时求值的子句,true则将应用第一个匹配状态。例如,下面的代码片段state1将始终被选择,而不是state2当sharedCondition成为时true:
1 | Item { |