Qt 图形特效(Graphics Effect)介绍

原文链接:Qt 图形特效(Graphics Effect)介绍

 

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.

转载于:https://www.cnblogs.com/lvdongjie/p/4366086.html

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

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

相关文章

小米usb3.0修复补丁_今日热闻 | Redmi 10X系列发布、小米手环5产品外观曝光、Win10补丁导致蓝屏、AXON 11 SE 6月发布...

今日热点新闻realme X50 Pro 玩家版发布realme 通过线上发布会推出包括真我 X50 Pro 玩家版在内的 8 款新品。其中真我 X50 Pro 玩家版搭载高通骁龙 865 移动平台、6.44 寸 90Hz 刷新率 AMOLED 屏幕和 1216 超线性双扬声器,配备 VC 液冷散热、线性马达和 4200mAh 电…

【Python基础知识-pycharm版】第九节_面向对象的三大特征

第九节方法方法没有重载私有属性和私有方法(实现封装)property装饰器_get和set方法面向对象的三大特征说明(封装、继承、多态)继承方法的重写(类成员的继承和重写)查看类的继承结构object根类_dir() 查看对象属性重写__str__()方法…

LeetCode 1869. 哪种连续子字符串更长

文章目录1. 题目2. 解题1. 题目 给你一个二进制字符串 s 。如果字符串中由 1 组成的 最长 连续子字符串 严格长于 由 0 组成的 最长 连续子字符串,返回 true ;否则,返回 false 。 例如,s "110100010" 中,…

如何通过像素点找到世界坐标_如何通过阅读来找到自己理论研究的“视域”?...

理论研究多用演绎法,也就是说,理论研究一般始于一个独特的概念、理论视角,或者判断。用刘良华的观点来说,这些都是理论研究的“视域”,也是理论研究得以展开的“大前提”。因此,理论研究最为关键的问题&…

任务并行VS数据并行

并行计算中,有两种并行的方法:任务并行(task-parallelism)和数据并行(data-parallelism)。任务并行:将许多可以解决问题的任务分割,然后分布在一个或者多个核上进行程序的执行。数据…

【Python基础知识-pycharm版】第十节_异常

第十节异常异常机制本质异常解决的关键:定位try... 一个 except 结构try... 多个 except 结构try...except...else 结 构try...except...finally 结构return 语句和异常处理问题常见异常的解决常见异常汇总with 上下文管理trackback 模块自定义异常类异常 在实际工…

k8s挂载目录_拥抱云原生,如何将开源项目用k8s部署?

k8s以及云原生相关概念近年来一直比较火热,阿丸最近搞了个相关项目,小结一下。本文将重点分享阿里开源项目otter适配k8s部署的改造过程,其中的改造过程和技巧应该适用于将大多数开源项目改造到k8s进行部署。1.背景otter是阿里开源的分布式数据…

LeetCode 1870. 准时到达的列车最小时速(二分查找)

文章目录1. 题目2. 解题2.1 模拟超时2.2 二分查找1. 题目 给你一个浮点数 hour ,表示你到达办公室可用的总通勤时间。 要到达办公室,你必须按给定次序乘坐 n 趟列车。 另给你一个长度为 n 的整数数组 dist ,其中 dist[i] 表示第 i 趟列车的行…

【Python基础知识-pycharm版】第十一节-文件操作(IO技术)

第十一节-文件操作(IO技术)文本文件和二进制文件文件操作相关模块概述创建文件对象 open()文本文件的写入基本的文件写入操作常用编码介绍ASCIIISO8859-1GB2312,GBK,GB18030中文乱码问题write()/writelines()写入数据close()关闭文件流with 语句(上下文管…

LeetCode 1871. 跳跃游戏 VII(贪心)

文章目录1. 题目2. 解题1. 题目 给你一个下标从 0 开始的二进制字符串 s 和两个整数 minJump 和 maxJump 。 一开始,你在下标 0 处,且该位置的值一定为 0 。 当同时满足如下条件时,你可以从下标 i 移动到下标 j 处: i minJump …

pcb外观维修_「维修案例」泰克AFG3021函数任意波形发生器故障维修

在产品调试的过程中,大多数的电路需要输入某种幅度随时间变化的信号,在这样的应用场景中,一个完整的测试测量系统一般会包含激励源,被测件和采集仪器三个部分。采集仪器通常使用的是示波器和逻辑分析仪,而信号源在系统…

设计模式--迭代器模式

实验18:迭代器模式 本次实验属于模仿型实验,通过本次实验学生将掌握以下内容: 1、理解迭代器模式的动机,掌握该模式的结构; 2、能够利用迭代器模式解决实际问题。 [实验任务]:JAVA和C常见数据结构迭代…

4k视频分辨率的码流_8K电视来了!但是8K视频仍很遥远

本届CES上,8K电视的集体发布可谓一大亮点,索尼、LG、TCL、三星等厂商纷纷推出8K电视。不光如此,本届CES上夏普突如其来的展示了一款具备8K视频拍摄功能的M43相机,这一点着实是出乎意料。今天我们就来讨论一下,在8K电视…

LeetCode 1707. 与数组中元素的最大异或值(Trie树)

文章目录1. 题目2. 解题1. 题目 给你一个由非负整数组成的数组 nums 。另有一个查询数组 queries ,其中 queries[i] [xi, mi] 。 第 i 个查询的答案是 xi 和任何 nums 数组中不超过 mi 的元素按位异或(XOR)得到的最大值。 换句话说&#x…

我的爬虫第一天

爬虫一个简单的爬虫:1.安装request2.测试是否安装成功3.新建项目4.使用requests请求网页4.如何用python解析网页源码5.简单的保存数据的方法一个简单的爬虫: 1.安装request pip install requests2.测试是否安装成功 输入python import requests不报…

qr分解求线性方程组_计算方法/数值分析第三章 线性方程组的数值解法

主要内容:1、引言2、高斯消去法3、直接分解法4、解线性方程组的迭代法5、向量范数、矩阵范数及迭代法的收敛性第一节 引言用克拉姆求解线性方程组第二节 高斯消去法高斯消去法是一种古老的直接法,其基本思想是通过消元将线性方程组的求解问题转化成三角形…

python 执行完成后,cmd窗口自动关闭

一般脚本运行完需要点击一下 在代码最后添加以下内容即可自动关闭cmd: import os import time time.sleep(1) # 方便展示,可删除 os.system("taskkill /f /im cmd.exe") # 关闭cmd窗口

txt文件可存储最大值_Verilog边码边学:十六进制文件读取$readmemh

系统任务$readmemh读取十六进制文件。$readmemh的作用是将文件中的数据一次性的读入某个数组中,然后可以依次从数组中取出单个的数据进行处理。读取的内容只包括空白位置(空格、换行、制表格)、注释行、十六进制的数字。语法结构中的起始地址与终止地址可省略。【语…

什么叫诚实_他爱不爱你,身体最诚实

文字:嘉一 声音:三三有位听友给我发私信说:“他看我的眼神变了,也不喜欢和我说话了,更懒得为我做任何事了,这段感情真的没意思了。”我回她:“一个人爱不爱你,身体最诚实。嘴巴可以…

【机器学习-数据科学】第一节:numpypandas

numpy&pandas安装numpy&pandasarray创建numpy的基础运算numpy的索引numpy的 array 合并numpy的 array分割numpy的 copy & deep copy安装numpy&pandas import numpy as np arraynp.array([[1,2,3],[2,3,4]])# 将数组转化为矩阵 print(array) #打印矩阵 print(nu…