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

图形视图界面 图形效果

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.kler.cn/a/3328.html

相关文章:

  • OpenEuler学习笔记(八):安装OpenEuler
  • 网络(三) 协议
  • 安卓14自由窗口圆角处理之绘制圆角轮廓线
  • 下载Visual Studio Community 2019
  • Unity自学之旅05
  • 后端的config包中的常用配置
  • 【数据结构】树的介绍
  • 用队列实现栈(图示超详解哦)
  • GPT-4发布,这类人才告急,大厂月薪10W+疯抢
  • LeetCode算法 打家劫舍 和 打家劫舍II C++
  • ChatGPT新进展GPT-4 模型介绍
  • 【数据结构与算法】 - 线性表详解 - (带头结点)单链表详细实现思路及代码
  • 基于51单片机的自动打铃打鸣作息报时系统AT89C51数码管三极管时钟电路
  • Week 14
  • C/C++每日一练(20230325)
  • 【事故】记一次意外把公司项目放到GitHub并被fork,如何使用DMCA下架政策保障隐私
  • Oracle-CDC进程同步报错问题合集
  • Android开发工程师想找工作需要掌握哪些
  • Pytorch中的图像增广和预处理方法(transforms类)
  • 快速排序,分治法实际应用(含码源与解析)
  • 微服务中的分布式事务管理 - 2/2 Saga异步模式
  • 吉利汽车智能驾驶掌舵人胡金龙离职!NOA「换道超车」被按下暂停键?
  • Web自动化测试(二)(全网最给力自动化教程)
  • 【字体图标iconfont】字体图标部署流程+项目源码分析
  • 【sentinel】熔断降级规则详解及源码分析
  • Python实现词频统计