博客出处:http://www.devdiv.com/thread-39111-1-1.html

折腾了几天,终于实现了图片的淡出淡入的效果。 其实也应该是说实现了图片的淡入效果,因为淡出效果我暂时还用不到,但原理还是一样的。

网上关于图片的淡出淡入效果的讨论蛮多的,但是用QT实现就很少了。实现这种效果有两种途径:一是读取图片的RGB值,然后渐进达到淡出淡入的效果,这种方法我没有尝试,感觉还是比较复杂。二是设置加载图片载体的透明度,从完全透明到完全显示,控制这个过程可以用过定时器(QTimer)来实现。

我是用QLabel加载图片的,主要运用到QTimer和QGraphicOpacityEffect这两个控制类。下面我说一下实现这种效果的步骤:

<1>   把label的属性背景透明度设置为透明,注意这并不能使你的图片变为透明,因为这只是使得label的边框,背景色彩消失而已。

  1. ui->label->setAttribute(Qt::WA_TranslucentBackground, true);

复制代码

<2>   加载图片,这个就不多说了,我是加载了一张gif图片,是静态的gif图片- -。

  1. ui->label->setPixmap(QPixmap("path"));

复制代码

<3>   把加载了图片的label设置完全透明

  1. float opacity=0.0;
  2. QGraphicOpacityEffect *effect=new QGraphicOpacityEffect()'
  3. effect->setIOpacity(opacity);//透明范围为0.0-1.0,默认为0.7  ui->label->setGraphicEffect(effect);

复制代码

<4> 利用QTimer实现渐变过程

  1. QTimer timer;
  2. QObject::connect(&timer,SIGNAL(timeout()),this,SLOT(fade_on_fade_out()));
  3. timer.start(250);//每隔250毫秒发射一次timeout()

复制代码

<5>在槽函数fade_on_fade_out()实现渐变功能

  1. void fade_on_fade_in()
  2. {        if(opacity>=1.0)
  3. }
  4. {
  5. timer.stop();//定时器停止
  6. }
  7. else
  8. {
  9. effect->setOpacity(opacity);
  10. ui->label->setGraphicsEffect(effect);
  11. }
  12. opacity+=0.1;//透明度累加

复制代码

<6>完成。

qt 在指定区域添加图片的更多相关文章

  1. Qt 怎么添加图片文件?

    1.新建一个.qrc的文件 2.起个.qrc的文件名 3.完成后,添加图片文件 4.如图 就好了.

  2. Qt笔记——添加菜单图片/添加资源文件

    添加新文件,模板选择Qt分类中的Qt资源文件(Qt Resource File) 先添加前缀,点击"添加"按钮,然后选择"添加前缀",我们这里因为要添加图片,所 ...

  3. pyside 为窗口添加图片

    有时我们需要添加一些图片到窗口上,下面给一个通过QLable实现的方法. 这里需要注意的是,当你启用多线程时,方法调用的setPixmap,会导致qt报出一个线程安全错误. 因此,让这个绘图工作尽量在 ...

  4. Qt国际化(Q_DECLARE_TR_FUNCTIONS() 宏给非Qt类添加翻译支持,以前没见过QTextEncoder和QTextDecoder和QLibraryInfo::location()和QEvent::LanguageChange)

    Internationalization with Qt 应用程序的国际化就是使得程序能在国际间可用而不仅仅是在本国可用的过程. Relevant Qt Classes andAPIs 以下的类支持Q ...

  5. QT怎样插入图片

    工具/原料   QT designer 方法/步骤   1 首先创建一个Manwindow窗口   拖一个label到窗口上   把文字去掉,然后把label放大   找到stylesheet一栏   ...

  6. C#如何在PDF文件添加图片印章

    文档中添加印章可以起一定的作用,比如,防止文件随意被使用,或者确保文档内容的安全性和权威性.C#添加图片印章其实也有很多实现方法,这里我使用的是免费的第三方软件Free Spire.PDF,向大家阐述 ...

  7. C# 给PDF添加图片背景

    C# 给PDF添加图片背景 今天要实现的是给PDF文件添加图片背景这个功能.PDF是近年来最流行的文件之一,无论是办公还是日常生活中都经常会用到,很多时候,PDF文件的背景色都是白色,看多了难免觉得累 ...

  8. 黄聪:phpexcel中文教程-设置表格字体颜色背景样式、数据格式、对齐方式、添加图片、批注、文字块、合并拆分单元格、单元格密码保护

    首先到phpexcel官网上下载最新的phpexcel类,下周解压缩一个classes文件夹,里面包含了PHPExcel.php和PHPExcel的文件夹,这个类文件和文件夹是我们需要的,把class ...

  9. C# 利用占位符替换word中的字符串和添加图片

    利用占位符替换word中的字符串和添加图片   ///<summary>         /// 替换word模板文件内容,包括表格中内容         /// 调用如下:WordStr ...

随机推荐

  1. Spring 注入static变量

    一般我们我想注入一个static的变量,如下: @Autowired    private static String str; 不过,这样最终结果为null. 1.使用配置文件的方式注入 priva ...

  2. Android学习及开发随记1:Android Studio安装配置

    1.本系列仅为个人使用,概不负责.随着时间推移,部分内容可能因为软件更新而出现不能对应的情况. 本文的配置情况,仅针对Android Studio v1.1.0 windows版本 全新安装. Goo ...

  3. 输出进程相关联的环境变量信息(使用GetEnvironmentStrings取得信息,然后使用StringCchCopyN和StringCchPrintf保证字符串不会越界)

    void DumpEnvironmentStrings() { #define MAX_ENVIRONMENT_NAME_LENGTH     (128) #define MAX_ENVIRONMEN ...

  4. 关于ssh的一篇很好的文章

    源地址:http://www.w3hacker.com/?p=156   ssh-agent的manual写得倒是挺详细,可看了好几次都没怎么搞明白.08年在网上找到了非常好的一篇文章,An Illu ...

  5. php命令行用法简介

    Php是一个非常流行的web服务端脚本语言.其实,php不仅仅可以在web服务器中充当重要角色.在命令行一样可以执行. 本文中,笔者为各位介绍下php在命令行中的使用方法. 1.  查看php的版本. ...

  6. C#版二维码生成器

    前言 本文所使用的二维码生成代码是谷歌开源的条形码图像处理库完成的,c#版的代码可去 这里   --  下载压缩包. 截止目前为止最新版本为2.2,提供以下编码格式的支持: UPC-A and UPC ...

  7. ios高版本SDK在低版本真机调试

    将build settings的ios deployment target改为对应真机系统版本即可

  8. NDK xxxxx could not be resolved解决方法

    Type '*****' could not be resolved Method '******' could not be resolved     问题解决   以下为未尝试方法,如果上面方法解 ...

  9. linq to Entity 数据库除了有主键还有唯一索引,是不是不能更新

    数据库建了一个唯一索引,使用linq to ef更新的时候,老是报,索引建冲突,,坑了我一上午,最后把索引删了

  10. zoj 3785 What day is that day? (打表找规律)

    题目 思路:比赛的时候有想过找循环节,但是,打表打错了. 后来,看着过了挺多人,就急了, 看了一下别人的时间 耗时都挺长的,就以为不是找规律, 没想到真是找规律,不过,这个题的数据可能挺大的. AC代 ...