qml 当鼠标进入Rectangle时,Rectangle出现外阴影,请给出代码
时间: 2024-06-10 16:10:42 浏览: 175
Qt Qml 可拖动设置Rectangle大小Demo
以下是一个示例代码,当鼠标进入Rectangle时,会出现外阴影:
```
Rectangle {
id: myRect
width: 200
height: 100
color: "lightgray"
radius: 10
anchors.centerIn: parent
MouseArea {
anchors.fill: parent
hoverEnabled: true
onEntered: {
myRect.ElevationAnimation.start()
}
onExited: {
myRect.ElevationAnimation.stop()
myRect.elevation = 0
}
}
Behavior on elevation {
NumberAnimation {
duration: 300
}
}
property int elevation: 0
property int maxElevation: 10
elevation: Math.min(maxElevation, Math.max(0, elevation))
DropShadow {
anchors.fill: myRect
horizontalOffset: 0
verticalOffset: myRect.elevation
radius: myRect.elevation
samples: 17
}
ElevationAnimation {
id: myElevation
target: myRect
property: "elevation"
from: 0
to: maxElevation
duration: 300
}
}
```
在这个代码中,我们定义了一个Rectangle,并在其上方添加了一个MouseArea。当鼠标进入该MouseArea时,我们创建了一个ElevationAnimation,并运行它以增加Rectangle的elevation值来显示阴影。我们还使用了一个DropShadow来创建阴影。当鼠标离开MouseArea时,我们停止ElevationAnimation并将elevation设置为0。
阅读全文