QML类型说明-DropShadow

本文详细介绍了Qt Graphical Effects中DropShadow效果的使用方法及其各种属性的作用。包括如何通过不同的属性调整阴影的颜色、模糊度、偏移等,并展示了这些属性如何影响最终的视觉效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

DropShadow

ImportStatement:   import QtGraphicalEffects 1.0

Since:  QtGraphicalEffects 1.0

Inherits:      Item

 

Properties

cached :bool

color :color

fast : bool

horizontalOffset: real

radius :real

samples :int

source :variant

spread :real

transparentBorder: bool

verticalOffset: real

 

DetailedDescription

默认的效果为产生一个高质量的影子图像。因此渲染速度可能不是最快的。当影子边缘需要严重软化时,渲染速度降低的格外严重。

如果我们需要快速的渲染速度,同时我们不需要尽可能高的视觉质量,我们能设置fast属性为真。

影响


实现代码:

importQtQuick 2.0

importQtGraphicalEffects 1.0

 

Item {

    width: 300

    height: 300

 

    Rectangle {

        anchors.fill: parent

    }

 

    Image {

        id: butterfly

        source:"images/butterfly.png"

        sourceSize: Qt.size(parent.width,parent.height)

        smooth: true

        visible: false

    }

 

    DropShadow {

        anchors.fill: butterfly

        horizontalOffset: 3

        verticalOffset: 3

        radius: 8.0

        samples: 16

        color: "#80000000"

        source: butterfly

    }

}

 

Property Documentation

cached :bool

是否缓冲影响输出,缓冲能提高渲染执行,但消耗更多内存。每当源或影响属性变化,缓冲都会更新。如果源或影响属性是动画化的,推荐关闭缓冲。默认为假。

 

color :color

用于阴影的RGBA颜色。默认为"black"

颜色的影响    

color: #000000 color: #0000ff color: #aa000000
radius: 8 radius: 8 radius: 8
samples: 16 samples: 16 samples: 16
horizontalOffset: 0 horizontalOffset: 0 horizontalOffset: 0
verticalOffset: 20 verticalOffset: 20 verticalOffset: 20
spread: 0 spread: 0 spread: 0


fast : bool

是否选择模糊算法,以使阴影有软化的效果。设置为真打开快速算法,设置为假产生高质量的结果。默认为假。

fast的影响    

fast: false fast: true
radius: 16 radius: 16
samples: 24 samples: 24
color: #000000 color: #000000
horizontalOffset: 0 horizontalOffset: 0
verticalOffset: 20 verticalOffset: 20
spread: 0 spread: 0


horizontalOffset: real

horizontalOffset和verticalOffset设置阴影的偏移位置。通常DropShadow的组件实例被锚定到源元件。所以它在源元件的位置上填充。当horizontalOffset和verticalOffset被设置成0,阴影将渲染在源图片的下面,改变horizontalOffset和verticalOffset的值可以让阴影处于源组件实例的相对位置。值在-inf到inf之间。默认为0。

偏移的影响    

horizontalOffset: -20 horizontalOffset: 0 horizontalOffset: 20
radius: 4 radius: 4 radius: 4
samples: 8 samples: 8 samples: 8
color: #000000 color: #000000 color: #000000
verticalOffset: 0 verticalOffset: 0 verticalOffset: 0
spread: 0 spread: 0 spread: 0


radius :real

半径定义了阴影的软化。巨大的半径让阴影显得更模糊。根据半径值设置足够的样品,才能保能视觉质量。值为0.0(无模糊)到inf。默认为0。

半径的影响    

radius: 0 radius: 6 radius: 12
samples: 24 samples: 24 samples: 24
color: #000000 color: #000000 color: #000000
horizontalOffset: 0 horizontalOffset: 0 horizontalOffset: 0
verticalOffset: 20 verticalOffset: 20 verticalOffset: 20
spread: 0 spread: 0 spread: 0


samples :int

当计算阴影边缘软化值是,每个像素取多少个样品。越大的值表示越好的视觉质量,但渲染得更慢。推荐它的值为最大半径值得两倍。例如,如果半径为0~4之间变化,样品值取8。样品值在0到32之间,默认为0。

这个属性没有计划被动画化。改变这个属性将促使OpenGL着色器被重新编译。当fast属性设置为真,这个属性不产生影响。

 

source :variant

用来产生阴影的源的组件实例。它不支持影响本身,所以不能设置父到source上。

 

spread :real

在源边缘附近多大尺寸的阴影颜色被强化。值在0.0到1.0之间,默认为0.5。

spread的影响    

spread: 0.0 spread: 0.5 spread: 1.0
radius: 8 radius: 8 radius: 8
samples: 16 samples: 16 samples: 16
color: #000000 color: #000000 color: #000000
horizontalOffset: 0 horizontalOffset: 0 horizontalOffset: 0
verticalOffset: 20 verticalOffset: 20 verticalOffset: 20


transparentBorder: bool

 

verticalOffset: real

horizontalOffset和verticalOffset设置阴影的偏移位置。通常DropShadow的组件实例被锚定到源元件。所以它在源元件的位置上填充。当horizontalOffset和verticalOffset被设置成0,阴影将渲染在源图片的下面,改变horizontalOffset和verticalOffset的值可以让阴影处于源组件实例的相对位置。值在-inf到inf之间。默认为0。

英文文档上的图表和horizontalOffset是一样的,这里就不单独列出。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值