Qt 图形特效(Graphics Effect)介绍

  • Post author:
  • Post category:其他



本站所有文章由本站和原作者保留一切权力,仅在保留本版权信息、原文链接、原 文作者的情况下允许转载,转载请勿删改原文内容, 并不得用于商业用途。 谢谢合作。

QGraphicsEffect也是Qt-4.6引入的一个新功能。它让给图形元素QGraphicsItem增加更佳视觉效果的编程变得非常简单。

先来看几张效果图。

上图中最上面的那个图片是没有使用QGraphicsEffect处理的原图,下面的四个图片分别代表了模糊,变色,透明和阴影效果。对应使用了 QGraphicsEffect的4个子类QGraphicsBlurEffect, QGraphicsColorizeEffect, QGraphicsDropShadowEffec

t, 和 QGraphicsOpacityEffect.下面分别介绍它们。


QGraphicsBlurEffect


该类用应产生模糊效果,主要函数setBlurRadius(qreal blurRadius),用于控制图形元素的模糊度,数值越大越模糊。使用该类例子如下

QGraphicsBlurEffect *e0 = new QGraphicsBlurEffect(this);

e0->setBlurRadius(0.2);

item[0]->setGraphicsEffect(e1);//item[0] 为QGraphicsItem指针


QGraphicsColorizeEffect


该类提供了使用另外一种颜色对当前图形的一种着色功能。主要函数是setColor(QColor)和setStrength (qreal strength),指定了着色和着色强度。使用该类例子如下

QGraphicsColorizeEffect *e1 = new QGraphicsColorizeEffect(this);

e1->setColor(QColor(0,0,192));

item[1]->setGraphicsEffect(e1);


QGraphicsDropShadowEffec

t


该类提供了图形元素的阴影效果,用于增加立体感。主要设置函数有3个,setColor()用于设定阴影的颜色,setBlurRadius()用于设定 阴影的模糊度,setOffset (qreal dx,qreal dy)用于设定在哪个方向产生阴影效果,如果dx为负数,则阴影在图形元素的左边。使用该类例子如下

QGraphicsDropShadowEffec

t *e2 = new QGraphicsDropShadowEffec

t(this);

e2->setOffset(8,8);

item[2]->setGraphicsEffect(e2);


QGraphicsOpacityEffect


该类用于图形元素的透明效果,主要函数是setOpacity(qreal opacity),用于设置透明度,参数值在0和1.0之间。也可以设置部分透明效果,需要调用的函数是setOpacityMask (QBrush mask)。使用该类例子如下

QGraphicsOpacityEffect *e3 = new QGraphicsOpacityEffect(this);

e3->setOpacity(0.7);

item[3]->setGraphicsEffect(e3);

下面我是写的

例子代码

和截图。

最后值得一提的是,这些效果是可以互相组合的。如果能把这些效果和Qt的动画Animation API结合起来,写出的程序就更漂亮了。

$QTSRC/examples/effect目录下面有些例子可以参考。

Tags:

Qt4.6

,

特效


This entry was posted on Saturday, February 6th, 2010 at 10:43 pm and is filed under

C++

,

Qt技术

. You can follow any responses to this entry through the

RSS 2.0

feed. You can

leave a response

, or

trackback

from your own site.

FROM:  http://blog.sina.com.cn/s/blog_66e717d70100hare.html