zoukankan      html  css  js  c++  java
  • QGraphicsEffect介绍(十分漂亮)

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

    先来看几张效果图。

    上图中最上面的那个图片是没有使用QGraphicsEffect处理的原图,下面的四个图片分别代表了模糊,变色,透明和阴影效果。对应使用了QGraphicsEffect的4个子类QGraphicsBlurEffect, QGraphicsColorizeEffect, QGraphicsDropShadowEffect, 和 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);

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

    QGraphicsDropShadowEffect *e2 = new QGraphicsDropShadowEffect(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, ortrackback from your own site.

    One Response to “Qt 图形特效(Graphics Effect)介绍”

    http://cowboy.1988.blog.163.com/blog/static/75105798201151311244982/

  • 相关阅读:
    一行代码搞定Dubbo接口调用
    测试周期内测试进度报告规范
    jq 一个强悍的json格式化查看工具
    浅析Docker容器的应用场景
    HDU 4432 Sum of divisors (水题,进制转换)
    HDU 4431 Mahjong (DFS,暴力枚举,剪枝)
    CodeForces 589B Layer Cake (暴力)
    CodeForces 589J Cleaner Robot (DFS,或BFS)
    CodeForces 589I Lottery (暴力,水题)
    CodeForces 589D Boulevard (数学,相遇)
  • 原文地址:https://www.cnblogs.com/findumars/p/5979128.html
Copyright © 2011-2022 走看看