Qt实现图片渐进渐出效果

转载 2016年04月11日 10:58:11

http://blog.sina.com.cn/s/blog_75deeddd0100tu2s.html


图片渐进渐出效果
.h文件
#ifndef CHANGEPICTURE_H
#define CHANGEPICTURE_H
#include <QWidget>
#include <QtGui>
#include <QGraphicsEffect>
#include <QGraphicsView>
#include <QTimer>
class ChangePicture : public QGraphicsView
{
Q_OBJECT
public:
    ChangePicture(QStringList piclist,
                  QSize picSize,
                  QPoint picPoint,
                  int speed,
                  QWidget *parent = 0);
private:
    void setupScene();
    void createItems();
private slots:
    void setupEffect();
private:
    QStringList m_piclist;
    QSize m_picSize;
    QPoint m_picPoint;
    QTimer m_speed;
    qreal m_angle;
    QGraphicsScene m_scene;
    QGraphicsItem *m_dissolving;
    QTimer *m_speedTimer;
    QPixmap m_pixmap;
    int m_timerCounter;
    int m_picCount;
    int m_int_speed;
};
#endif // CHANGEPICTURE_H


.cpp文件
#include "changepicture.h"

ChangePicture::ChangePicture(QStringList piclist, QSize picSize, QPoint picPoint, int speed ,QWidget *parent) :
        QGraphicsView(parent),m_piclist(piclist),m_picSize(picSize),m_picPoint(picPoint),m_int_speed(speed),m_angle(0.0)
{
    this->setupScene();
    this->setupEffect();
    this->m_timerCounter = 0;
    this->m_picCount = 1;
    this->m_speedTimer = new QTimer(this);
    connect(this->m_speedTimer,SIGNAL(timeout()),this,SLOT(setupEffect()));
    this->m_speedTimer->start(m_int_speed);
}
void ChangePicture::setupScene()
{
    this->setScene(&this->m_scene);
    this->setRenderHint(QPainter::Antialiasing,true);
    this->setFrameStyle(QFrame::NoFrame);
    this->m_scene.setSceneRect(0,0,this->m_picSize.width(),this->m_picSize.height());
    this->createItems();
}
void ChangePicture::createItems()
{
    this->m_pixmap = QPixmap(m_piclist.at(0)).scaled(m_picSize);
    this->m_dissolving = this->m_scene.addPixmap(this->m_pixmap);
    this->m_dissolving->setPos(m_picPoint);
}
void ChangePicture::setupEffect()
{
    QGraphicsOpacityEffect *m_dissolvingEffect = new QGraphicsOpacityEffect(this);
    if(this->m_timerCounter != 100)
    {
        m_dissolvingEffect->setOpacity(this->m_timerCounter * 0.02);
        this->m_timerCounter++;
    }else
    {
        this->m_scene.clear();
        m_dissolvingEffect->setOpacity(m_angle);
        this->m_pixmap = QPixmap(m_piclist.at(m_picCount)).scaled(m_picSize);
        this->m_dissolving = this->m_scene.addPixmap(this->m_pixmap);
        this->m_dissolving->setPos(m_picPoint);
        this->m_timerCounter = 0;
        if(this->m_picCount >= this->m_piclist.size() - 1)
        {
            this->m_picCount = 0;
        }else
        {
            this->m_picCount++;
        }
    }
    this->m_dissolving->setGraphicsEffect(m_dissolvingEffect);
}


qt 显示图片特效

  • 2015年06月10日 13:16
  • 7KB
  • 下载

使用Qt实现简单的图片预览效果

  • 2016年09月29日 09:19
  • 1.43MB
  • 下载

android欢迎界面渐入,渐出效果制作

app通常有一个欢迎界面,常用的实现方法代码如下: try { Thread.sleep(3000); } catch (InterruptedExcepti...
  • u014646004
  • u014646004
  • 2016年02月29日 22:02
  • 1308

QT中实现图片淡出淡入的效果

网上关于图片的淡出淡入效果的讨论蛮多的,但是用QT实现就很少了。实现这种效果有两种途径:一是读取图片的RGB值,然后渐进达到淡出淡入的效果,这种方法我没有尝试,感觉还是比较复杂。二是设置加载图片载体的...
  • imxiangzi
  • imxiangzi
  • 2015年11月11日 17:59
  • 1416

使用Qt实现简单的图片预览效果

Qt简化了UI界面的开发,相比MFC而言确实入门和进阶速度都快些;该文章主要讲解使用QListWidget加载图片进行排列并设置主窗口背景图片的功能; 界面效果如下图所示:上面两排为预加载的缩略图,...
  • caoshangpa
  • caoshangpa
  • 2016年09月29日 09:21
  • 1954

Qt: 图片旋转的特效

当我在火影中文网准备看动漫时,突然发现以下的场景,于是我也想做一个类似的效果. 完成后的效果如下: 实现这个效果主要有几个点要能够实现出来: 1.如何实现旋转效果. 2.重写进入控件和...
  • qq_37233607
  • qq_37233607
  • 2018年01月14日 22:45
  • 64

Android 自定义Activity动画渐入和渐出样式

slide_in_right.xml
  • longhai326
  • longhai326
  • 2013年09月27日 18:08
  • 1449

jQuery div层渐入渐出效果

function test() {             //渐入渐出方式1 —— 从左上角划出,从右下角 收回              $("#msg").show("fast");   ...
  • xuanjiewu
  • xuanjiewu
  • 2015年08月30日 01:20
  • 4317

Qt5 - 图形特效

Qt5 - 图形特效   安装QtGraphicalEffects 插件: git clone git@gitorious.org:qt-labs/qtgraphicaleffects.gi...
  • yurenjimi
  • yurenjimi
  • 2012年03月15日 17:14
  • 1113

Qt学习笔记——打开并显示图片

使用控件QLabel mainwindow.h #ifndef MAINWINDOW_H #define MAINWINDOW_H #include #include #include #...
  • yang6464158
  • yang6464158
  • 2014年07月25日 09:57
  • 13255
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Qt实现图片渐进渐出效果
举报原因:
原因补充:

(最多只允许输入30个字)