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是一样的,这里就不单独列出。