最全的QgraphicsEffect设置

news2024/10/5 16:53:46
在Qt中,QGraphicsEffect有四个子类,分别为QGraphicsBlurEffect, QGraphicsColorizeEffect, QGraphicsDropShadowEffect, and QGraphicsOpacityEffect,用于实现模糊、着色、阴影、透明度功能
下面就是对这四种功能以及效果做测试
1.QGraphicsBlurEffect,将图片或窗口模糊化,呈现失焦效果
代码如下

QFrame* pTestFrame = new QFrame(this);
	pTestFrame->setFixedSize(QSize(200, 200));
	pTestFrame->move(100, 110);
	 // 创建高斯模糊效果
	QGraphicsBlurEffect* blurEffect = new QGraphicsBlurEffect;
	blurEffect->setBlurHints(QGraphicsBlurEffect::QualityHint);
	blurEffect->setBlurRadius(2); // 设置模糊半径

	// 将高斯模糊效果应用于控件的背景
	pTestFrame->setAutoFillBackground(true);
	QPalette palette;
	palette.setBrush(QPalette::Background, QBrush(QColor(255,255,255, 40))); // 设置背景颜色
	pTestFrame->setPalette(palette);
	QGraphicsEffect* oldEffect = pTestFrame->graphicsEffect();
	pTestFrame->setGraphicsEffect(blurEffect);

在这里插入图片描述

针对于setBlurHints函数主要用于模糊性能参数的设置
QGraphicsBlurEffect::PerformanceHint  //表明渲染性能是最重要的因素,但潜在的代价是较低的质量。
QGraphicsBlurEffect::QualityHint //表示渲染质量是最重要的因素,但潜在的代价是较低的性能。
QGraphicsBlurEffect::AnimationHint //表示模糊半径将是动画的,暗示实现可以保留源的模糊版本的缓存。如果源要动态更改,则不要使用此提示。

2.QGraphicsColorizeEffect,图片或窗口、控件着色
代码如下
QFrame* pTestFrame = new QFrame(this);
	pTestFrame->setFixedSize(QSize(200, 200));
	pTestFrame->move(100, 110);
	pTestFrame->setAutoFillBackground(true);
auto blur = new QGraphicsColorizeEffect(this);
    blur->setStrength(0.5);//强度0.0等于没有效果,而1.0意味着完全着色。测试发现越接近1,颜色值越深
    blur->setColor(Qt::green);//颜色
    QPalette palette;
	palette.setBrush(QPalette::Background, QBrush(QColor(255, 255, 255, 40))); // 设置背景颜色
	pTestFrame->setPalette(palette);
	auto oldEffect = pTestFrame->graphicsEffect();
  pTestFrame ->setGraphicsEffect(blur);

在这里插入图片描述

QGraphicsDropShadowEffect,图片或窗口、控件设置阴影
代码如下
QFrame* pTestFrame = new QFrame(this);
	pTestFrame->setFixedSize(QSize(200, 200));
	pTestFrame->move(100, 110);
	pTestFrame->setAutoFillBackground(true);
QGraphicsDropShadowEffect* shadoweffect = new QGraphicsDropShadowEffect(this);
    shadoweffect->setOffset(5,5);//阴影与原有图形的间距
    shadoweffect->setColor(Qt::green);
    shadoweffect->setBlurRadius(10);//阴影半径
    pTestFrame->setGraphicsEffect(shadoweffect);

在这里插入图片描述

4.QGraphicsOpacityEffect,图片或窗口、控件设置透明度
代码如下
//蒙版参数设置start
	QFrame* pTestFrame = new QFrame(this);
	pTestFrame->setFixedSize(QSize(200, 200));
	pTestFrame->move(100, 110);
	pTestFrame->setAutoFillBackground(true);
    auto rect = pTestFrame ->rect();
    QLinearGradient alphaGradient(rect.topLeft(), rect.bottomLeft());
    alphaGradient.setColorAt(0.0, Qt::transparent);
    alphaGradient.setColorAt(0.5, Qt::black);
    alphaGradient.setColorAt(1.0, Qt::transparent);
    //蒙版参数设置end

    auto blur = new QGraphicsOpacityEffect(this);
    blur->setOpacity(0.5);//透明度设置该值应该在0.0到1.0的范围内,其中0.0是完全透明的,1.0是完全不透明的。
    blur->setOpacityMask(alphaGradient);//蒙版设置,透明度和蒙版可单独设置、
    QPalette palette;
	palette.setBrush(QPalette::Background, QBrush(QColor(255, 255, 255, 40))); // 设置背景颜色
	pTestFrame->setPalette(palette);
    pTestFrame ->setGraphicsEffect(blur);

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1048760.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

服务器搭建(TCP套接字)-libevent版(服务端)

Libevent 是一个开源的事件驱动库,用于开发高性能、并发的网络应用程序。它提供了跨平台的事件处理和网络编程功能,具有高性能、可扩展性和可移植性。下面详细讲解 Libevent 的主要组成部分和使用方法。 一、事件基础结构(event_base&#x…

26530-2011 地理标志产品 崂山绿茶

声明 本文是学习GB-T 26530-2011 地理标志产品 崂山绿茶. 而整理的学习笔记,分享出来希望更多人受益,如果存在侵权请及时联系我们 1 范围 本标准规定了崂山绿茶地理标志产品的术语和定义、保护范围、分类、等级和实物标准样、要求、试 验方法、检验规则、标志、标签、包装、…

遥遥领先!探索Amazon CodeWhisperer魔力,你的私人AI编程助手!

本文目录 【前言】一、Amazon CodeWhisperer 功能概览1.1 强大的代码建议1.2 支持多种语言与IDE1.3 安全扫描 二、沉浸式体验使用Amazon CodeWhisperer实战开发代码2.1 Pycharm中快速导入Amazon CodeWhisperer2.2 使用CodeWhisperer快速构建Python代码2.3 Amazon CodeWhisperer…

26049-2010 银包铜粉 阅读笔记

声明 本文是学习GB-T 26049-2010 银包铜粉. 而整理的学习笔记,分享出来希望更多人受益,如果存在侵权请及时联系我们 1 范围 本标准规定了银包铜粉的要求、试验方法、检验规则、标志、包装、运输、贮存、质量证明书以及合同 (或订货单)内容。 本标准适用于电子、机电、通讯…

汽车电子——产品标准规范汇总和梳理(信息安全)

文章目录 前言 一、整车 二、充电接口 三、诊断接口 四、远程接口 五、实施指南 总结 前言 见《汽车电子——产品标准规范汇总和梳理》 一、整车 《GB/T 40861-2021 汽车信息安全通用技术要求》 《GB XXXXX—XXXX 汽车整车信息安全技术要求》 《GB/T 41871-2022 信息…

华为再放大招!联合伙伴发布AI新人类,助力场景化大模型商用落地

原创 | 文 BFT机器人 随着人工智能技术的不断发展,我们正迎来一个全新的智能时代。在这个时代里,人工智能将在各个领域发挥重要作用,为人类带来更智能、便捷和高效的生活体验。为了加速人工智能的商用落地,华为联合伙伴发布了系列…

kafka各版本消息介绍

kafka各版本消息介绍 V0 offset:分区中的偏移量message size:消息大小crc32(4B):crc32校验值。校验范围为magic至value之间。magic(1B):消息格式版本号,此版本的magic值为0。attributes (1B):消息的属性。总共占1个字节,低3 位表…

IDEA社区版,真香!

IDEA(IntelliJ IDEA)是众多 Java 开发者的首选。 商业版的昂贵 IDEA 商业版(IntelliJ IDEA Ultimate)功能非常强大,能够满足 Java 开发的所有需求,但其高昂的价格…… 此时只能感叹,不是不想用…

学习在windows环境下定时执行python脚本的方法

学习在windows环境下定时执行python脚本的方法 一、准备Python脚本二、创建定时任务1、打开【任务计划程序】2、打开【创建任务】窗口3、创建任务一一常规4、创建任务一一触发器5、创建任务一一操作程序或脚本:添加参数:起始于: 7、创建任务一…

CAD/CAM/CAE SDK 国庆大放送:Eyeshot 2023.X Crack

创建、探索或编辑 3D CAD 数据 开发您自己的(独立的)CAD/CAM/CAE 应用程序,请选择合适自己的版本::关注我,得知全球最新最全的组件动态,这个sdk我们会一直持续更新到最新,跟着我们,你…

GAT学习

文章目录 GAT注意力机制的定义图注意力层多头注意力机制GATConv层中forward函数步骤解析:1. 计算wh。wh:带权特征向量2. 计算注意力分数e3. 激活注意力分数e4. 由边的索引获取邻接矩阵5. 获得注意力分数矩阵。 attention[i][j]表示i j之间的注意力分数torch.where详…

苹果发布iOS 17.1首个beta版本,新增了这几个新功能!

苹果今日向iPhone/iPad用户推送了iOS/iPadOS17.1开发者预览版Beta版更新,iOS/iPadOS17.1Beta内部版本号为21B5045h。 iOS/iPadOS17.1Beta更新内容如下: 一:Apple Music“已喜爱”分类 用户可以在 iOS 17.1 的 Apple Music 中收藏歌曲、专辑…

优化邮箱体验!推荐替代方案:提升企业效率的选择

近年来,随着互联网技术的快速发展,电子邮件成为了企业沟通和协作的重要工具。而作为国内知名的企业邮箱服务提供商,网易企业邮箱凭借其稳定性、安全性和易用性,受到了广大企业的青睐。然而,随着市场竞争的加剧&#xf…

26532-2011 地理标志产品 慈溪杨梅

声明 本文是学习GB-T 26532-2011 地理标志产品 慈溪杨梅. 而整理的学习笔记,分享出来希望更多人受益,如果存在侵权请及时联系我们 1 范围 本标准规定了慈溪杨梅的术语和定义、地理标志产品保护范围、要求、试验方法、检验规则及标志、 标签、包装、运输和贮存。 本标准适用…

基于java的银行风险预警系统的研究与实现

文章目录 导文摘要:前言:绪论:相关技术与方法介绍:系统分析:系统设计:系统实现:系统测试:总结与展望:导文 基于java的银行风险预警系统的研究与实现 本文基于Java开发了一款银行风险预警系统,旨在帮助银行有效管理风险并提前预警潜在风险。下面将对文中的各个部分进行…

微信小程序 课程签到系统

目录 前端页面展示主页面我的课程个人中心评论功能签到功能课程绑定超级管理员页面 前端文件结构文件结构app.json前端架构和开发工具前端项目地址 后端后端架构后端项目地址 注意事项 前端页面展示 主页面 登录页面: 账号是:用户名或者手机号 密码是&a…

【Elasticsearch】聚合查询(四)

Elasticsearch(简称为ES)是一个基于Lucene的开源搜索和分析引擎,提供了丰富的聚合查询功能。聚合查询指的是在搜索结果上执行分组、汇总和统计等操作,以便从大量数据中提取有用的信息和洞察。 这篇文章主要介绍检索相关的操作&…

freertos的任务调度器的启动函数分析(根据源码使用)

volatile uint8_t * const pucFirstUserPriorityRegister ( uint8_t * ) ( portNVIC_IP_REGISTERS_OFFSET_16 portFIRST_USER_INTERRUPT_NUMBER ); 通过宏pucFirstUserPriorityRegister0xE000E400(根据宏名字,这是NVIC寄存器地址) 查手册…

26523-2022 精制硫酸钴 随笔练习

声明 本文是学习GB-T 26523-2022 精制硫酸钴. 而整理的学习笔记,分享出来希望更多人受益,如果存在侵权请及时联系我们 1 范围 本文件规定了精制硫酸钴的要求、试验方法、检验规则、标志、标签、包装、运输和贮存。 本文件适用于精制硫酸钴。 注:该产品主要用于…

【面试题】有了Docker为啥还需要k8s?

个人主页:金鳞踏雨 个人简介:大家好,我是金鳞,一个初出茅庐的Java小白 目前状况:22届普通本科毕业生,几经波折了,现在任职于一家国内大型知名日化公司,从事Java开发工作 我的博客&am…