QML实现呼吸动画
时间: 2024-02-28 19:55:07 浏览: 70
可以使用QML中的Animation和NumberAnimation组件来实现呼吸动画。下面是一个简单的例子:
```qml
import QtQuick 2.15
Rectangle {
width: 200
height: 200
color: "lightblue"
// 定义呼吸动画
NumberAnimation {
id: breatheAnimation
target: rect
property: "opacity"
from: 1
to: 0.5
duration: 1000
easing.type: Easing.InOutQuad
loops: Animation.Infinite
}
// 定义矩形
Rectangle {
id: rect
width: 100
height: 100
color: "white"
opacity: 1
radius: 10
anchors.centerIn: parent
// 当鼠标进入矩形时,启动呼吸动画
MouseArea {
anchors.fill: parent
hoverEnabled: true
onEntered: breatheAnimation.running = true
onExited: breatheAnimation.running = false
}
}
}
```
在这个例子中,我们定义了一个名为“breatheAnimation”的NumberAnimation组件,它的目标是矩形的不透明度属性。动画的起始值为1,结束值为0.5,持续时间为1000毫秒,缓动函数为InOutQuad,循环次数为无限循环。
然后我们定义了一个矩形,当鼠标进入矩形时,启动呼吸动画,当鼠标离开矩形时,停止呼吸动画。
运行这个例子,当鼠标进入矩形时,矩形的不透明度会呼吸变化,产生呼吸动画效果。
阅读全文