上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人
7.2 图形效果
Qt4.6的新特性之一就是图形效果(graphics effect)。图形效果相当于在源图像和目标绘图设备中加了过滤器,改变了图形显示效果。图形效果可以施加于QGraphicsItem或QWidget。所有的图形效果基类为QGraphicsEffect,Qt提供了四种标准效果类,用户也可以从QGraphicsEffect类继承形成自己的图形效果类。
Qt提供的标准图形效果类如表7-2所示。
表7-2 Qt图形效果类
每个图形效果类都有效果参数设置,下面以一个测试图形效果的例子来说明,源代码可从博文视点网站获取。程序运行效果图7-2所示。
图7-2 图形效果演示
首先使用Qt Designer设计一个窗口,左边为QGraphicsView,右边为效果控制参数控件。这里选取阴影效果中颜色按钮组选择的响应函数分析,代码如下:
void EffectWidget::setShadowColor(int i) { m_shadowColor = static_cast<Qt::GlobalColor>(i); m_shadowColor.setAlpha(180); QGraphicsDropShadowEffect* de = new QGraphicsDropShadowEffect; de->setBlurRadius(shadowRSpin->value()); de->setOffset(xOffsetSpin->value(),yOffsetSpin->value()); de->setColor(m_shadowColor); m_item->setGraphicsEffect(de); }
QGraphicsDropShadowEffect类可控制的属性有阴影偏移量、阴影颜色、阴影模糊度,在函数中都进行了设置。设置好效果对象参数后,通过QGraphicsItem类的setGraphicsEffect()函数设置图形效果,如果QGraphicsItem之前设置过图形效果,则删除旧的图形效果,应用新的图形效果。
读者可编译运行程序并控制各种效果参数,对各种效果进行实验。