QML之states

今天学习states组件库,主要包括State,PropertyChanges,StateGroup,StateChangeScript,ParentChange,AnchorChanges

1、State

 

使用when 表达式触发状态改变.

State通常和Transition一起提供动画效果.

 

2、PropertyChanges

      PropertyChanges提供了当状态变化,而改变组件属性值的功能。

     

        由以上代码可以看出,PropertyChanges可以绑定多个属性.

       现在有个疑问:可以在一个target上同时改变多个属性,但是怎么在一个State里改变多个target的属性呢?请看下面代码

      

       注意:一个State里多个PropertyChanges里的target不要相同,如果第二个PropertyChanges里的target也是text_cn的话,会只执行第一个PropertyChanges的属性值变化

 

     3、ScriptAction

          ScriptAction可以用于在动画的某个点上执行脚本程序,甚至说可以在这调用C++的函数,如:

          

 

4、ParentChange

      ParentChange是指定一个父组件给当前目标组件。然后更改的属性是相对于父组件的。如(sition, size, rotation, and scale)

   

   这段代码将blueRect的x坐标,y坐标移动到父组件的(10,10),即将blueRect移动到redRect的(10,10)坐标位置

 

   5、AnchorChanges

         AnchorChanges常用于在State中修改组件的anchors,但是不能用于修改组件的margin值,对于margin值我们需要用PropertyChanges修改

     

 

     AnchorAnimation:

     

      Component.onComplete即页面加载完成事件

    

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值