qml 没有ElevationAnimation,请使用PropertyAnimation,实现当鼠标进入Rectangle时,Rectangle出现外阴影,请给出代码
时间: 2024-06-10 12:10:41 浏览: 102
HTML5鼠标经过显示带阴影效果特效代码
以下是使用PropertyAnimation实现当鼠标进入Rectangle时,Rectangle出现外阴影的示例代码:
```
import QtQuick 2.0
Rectangle {
id: rect
width: 200
height: 100
color: "lightgray"
radius: 10
property real shadowRadius: 0
MouseArea {
anchors.fill: parent
hoverEnabled: true
onEntered: {
shadowAnimation.to = 10
shadowAnimation.start()
}
onExited: {
shadowAnimation.to = 0
shadowAnimation.start()
}
}
PropertyAnimation {
id: shadowAnimation
target: rect
property: "shadowRadius"
duration: 300
easing.type: Easing.InOutQuad
}
// 阴影效果
Rectangle {
anchors.fill: rect
color: "transparent"
border.color: "#333333"
border.width: rect.shadowRadius
radius: rect.radius
}
}
```
在上述代码中,我们使用了一个名为shadowRadius的custom property来控制阴影的大小,然后通过鼠标进入和离开事件来触发PropertyAnimation来实现阴影的渐变。最后,我们在Rectangle内部添加了一个用于呈现阴影效果的矩形元素。
阅读全文