Qml控件的状态(State)可以设置变化属性,是一个list类型:changes[]。
支持多种类型的Change对象。
PropertyChanges类型
用来改变对象的属性,详细介绍见上一篇文章:Qml的状态。
ParentChange
用来改变对象控件的parent。包含以下属性:
- target:目标对象
- parent:指定目标对象的parent
- x,y:设置目标对象的x和y的位置
- width/height:设置目标对象的宽高
- rotation/scale:设置选装角度和比例
ParentChange只可以设置这几个属性,但可以结合PropertyChanges来设置对象的属性。
AnchorChange
用来设置空间的锚布局属性,支持常规的顶部,底部,左侧和右侧等设置。
AnchorChange只能设置这几个属性,但可以结合PropertyChanges来设置对象的属性。
这里简要总结一下,PropertyChanges完全可以实现ParentChange和AmchorChange的功能,但使用后两者对于同样的功能效率更高。
StateChangeScript
通过js脚本来使组件发生变化,其设置的属性如下:
- name:脚本的名称(可以实现复用)
- script:执行的脚本