Bootstrap

Qml-Behavior的使用

Qml-Behavior的使用

Behavior的概述

  1. Behavior:当属性值发生变化时的默认动画
  2. 属性animation : Animation:属性变化的动画
  3. 属性enabled : bool:属性值变换时是否使能Behavior(行为);
  4. 属性targetProperty.name : string: 只读,目标属性名称
  5. 属性targetProperty.object : QtObject:只读,目标属性对象
  6. 注意:一个属性只能一个Behavior(行为),如果想给一个Behavior设置多个动画,可以使用并行动画或串行动画
  7. 注意:如果状态(State)更改的属性的和Behavior(行为)绑定的属性为同一个,状态的过渡动画会覆盖Behavior(行为)的动画

Behavior的实例代码

import QtQuick

//Behavior 定义属性值发生改变时的默认动画
//注意 一个属性不能指定多个行为动画,如果需要指定多个行为动画,可以使用并行(ParallelAnimation)或者线性动画(SequentialAnimation)
//如果状态(State)更改的属性与Behavior绑定的属性相同时,状态(State)的动画会覆盖Behavior的动画。

Item {
    id: itemTransform
    Rectangle {
        id:idRec
        width: 100; height: 100
        color: "blue"

        Behavior on height {
            id: idBe
            //行为动画
            animation:  NumberAnimation{
                duration: 1000
            }

        }

        MouseArea{
            anchors.fill: parent
            onClicked:  parent.height = (parent.height === 100 ? 50 : 100);
        }

       onHeightChanged: {
           console.log("be targetValue = ",idBe.targetValue," be enable = ",idBe.enabled,"be tagpro name = ",idBe.targetProperty.name);
           if(idBe.targetProperty.object == idRec)
               console.log("be tagpro obj equal");
       }

    }
}

Behavior实例代码运行结果如下:

1.当点击 矩形区域,高度会从100~50 或者从50~100;会打印属性targetProperty.name 、 **targetProperty.object **相关的信息;
2.输出信息如下
在这里插入图片描述
3.效果图如下:
在这里插入图片描述

;