当前位置: 首页 > news >正文

图形视图界面 图形效果

Qt的标准图形效果类:

QGraphicsBlurEffect提供模糊效果
QGraphicsColorizeEffect提供染色效果
QGraphicsDropShadowEffect提供阴影效果
QGraphicsOpacityEffect提供透明效果

QGraphicsBlurEffect(模糊效果)

模糊效果会模糊源。此效果对于减少细节非常有用,常用于失去焦点时,想要更加突出焦点控件。

常用函数:

setBlurHints()设置模糊提示
setBlurRadius()设置模糊半径,使用较小的半径会导致更清晰的外观,而较大的半径会导致更模糊的外观,默认为5像素

enum QGraphicsBlurEffect::BlurHint

QGraphicsBlurEffect::PerformanceHint指示呈现性能是最重要的因素,但潜在的代价是质量较低。
QGraphicsBlurEffect::QualityHint指示呈现质量是最重要的因素,但可能以降低性能为代价
QGraphicsBlurEffect::AnimationHint指示将要对模糊半径进行动画处理,暗示实现可以保留源的模糊版本的缓存。如果源将动态更改,请不要使用此提示。

性能提示提示表示您想要更快的模糊,使用质量提示提示表示您更喜欢更高质量的模糊。

在QGraphicsItem中使用:鼠标点击时变为模糊。

//MyItem继承自QGraphicsItem
void MyItem::mousePressEvent(QGraphicsSceneMouseEvent *event)
{QGraphicsBlurEffect *effect=new QGraphicsBlurEffect;effect->setBlurHints(QGraphicsBlurEffect::PerformanceHint);//性能模式effect->setBlurRadius(10);//设置模糊半径setGraphicsEffect(effect);//设置模糊
}

初始状态:                                                        模糊状态:

 QGraphicsColorizeEffect(染色)

函数:

setColor()设置颜色,默认情况下,颜色为浅蓝色 (QColor(0, 0, 192))
setStrength()设置强度,默认情况下,强度为 1.0。强度 0.0 等于无效,而 1.0 表示完全着色
void MyItem::mousePressEvent(QGraphicsSceneMouseEvent *event)
{QGraphicsColorizeEffect * effect=new QGraphicsColorizeEffect;//创建染色器effect->setColor(QColor(Qt::green));effect->setStrength(0.5);//设置强度setGraphicsEffect(effect);
}

初始状态:                                              染色后的状态:

QGraphicsDropShadowEffect(阴影效果) 

 提供一个阴影效果,该效果可以为源对象提供一个阴影。

常用函数:

setBlurRadius()设置模糊半径,默认像素半径为1
setColor()设置投影的颜色,默认为液滴颜色为半透明的深灰色 (QColor(63, 63, 63, 180))
setOffset()

添加偏移量,默认为右下角8像素

setXOffset()x轴的偏移量
setYOffset()

y轴的偏移量

void MyItem::mousePressEvent(QGraphicsSceneMouseEvent *event)
{QGraphicsDropShadowEffect * effect=new QGraphicsDropShadowEffect;//创建阴影effect->setColor(QColor(Qt::green));//设置阴影颜色effect->setBlurRadius(10);//模糊半径effect->setOffset(10);//设置偏移量setGraphicsEffect(effect);
}

初始状态:                                                      点击之后:

 QGraphicsOpacityEffect(透明效果)

不透明度效果以不透明度呈现源。此效果对于使源半透明非常有用,类似于淡入/淡出序列。

常用函数:

setOpacity()设置透明度,该值应在 0.0 到 1.0 的范围内,其中 0.0 表示完全透明,1.0 表示完全不透明
setOpacityMask()设置不透明度覆盖,允许您将不透明度应用于元素的某些部分,默认情况下没有不透明度蒙版
void MyItem::mousePressEvent(QGraphicsSceneMouseEvent *event)
{QGraphicsOpacityEffect * effect=new QGraphicsOpacityEffect;effect->setOpacity(0.5);//设置透明度QPointF point=mapToScene(x,y);QPointF point2=mapToScene(x+radius,y+radius);QLinearGradient alphaGradient(point,point2);//创建一个渐变alphaGradient.setColorAt(0.0, Qt::transparent);alphaGradient.setColorAt(0.5, Qt::black);alphaGradient.setColorAt(1.0, Qt::transparent);effect->setOpacityMask(alphaGradient);//添加不透明蒙版setGraphicsEffect(effect);
}

起始状态:                                         点击之后:

http://www.lryc.cn/news/42584.html

相关文章:

  • ElementUI学习笔记
  • 安装KVM并创建虚拟机及基本使用
  • 一种LCD屏闪问题的调试
  • Java程序运行在Docker等容器环境有哪些新问题?
  • C语言面试最常问的三个关键字
  • 【Linux】-初识Linux
  • 精选7个 Python 学习资源库,助你成为优秀的开发者
  • 【大数据处理与可视化】三 、Pandas库的运用
  • FPGA解码SDI视频任意尺寸缩放拼接输出 提供工程源码和技术支持
  • 线索二叉树结构
  • 6.网络爬虫——BeautifulSoup详讲与实战
  • Vue:路由管理模式
  • 7个最好的PDF编辑器,帮你像编辑Word一样编辑PDF
  • 【数据结构】树的介绍
  • CoreDNS 性能优化
  • 前端三剑客常见面试题及其答案
  • 【DFS专题】深度优先搜索 “暴搜”优质题单推荐 10道题(C++ | 洛谷 | acwing)
  • 微信小程序自定义组件生命周期有哪些?
  • Linux就该这么学(六)
  • 目标检测算法——YOLOv5/v7/v8改进结合涨点Trick之Wise-IoU(超越CIOU/SIOU)
  • 【蓝桥杯选拔赛真题39】python输出数字组合 青少年组蓝桥杯python 选拔赛STEMA比赛真题解析
  • 网络安全工程师做什么?
  • 总结:K8S运维常用命令
  • 你是真的“C”——进行动态内存分配库函数的使用详解
  • Python|蓝桥杯进阶第五卷——数论
  • 用Python实现单例模式
  • 交叉编译说明:工具链安装和环境变量配置
  • 文件上传的多种利用方式
  • 盘一盘C++的类型描述符(二)
  • 慎投,Frontiers这本期刊显示on hold中