Qt实现移入移出与淡入淡出效果

在用Qt做一些客户端时,经常需要实现循环播放一组图文,实现一些广告、步骤引导等效果;

而直接切换又比较生硬,需要加上一些常用的效果,比如淡入淡出效果、平移效果(移入移出)等等;

可以使用QMovie与QGraphicsOpacityEffect与定时器QTimer可以实现这样的效果,可以按你所需,自由实现这些效果;

这里给出一个例子,主要实现了淡入淡出效果与平移效果(上下左右自由组合):

#ifndef SWITCHPICTURE_H
#define SWITCHPICTURE_H

#include <QTimer>
#include <QWidget>
#include <QGraphicsOpacityEffect>
#include <QLabel>
#include <QMovie>

enum CTRLTYPE//控件类型,图片与文字
{
    TEXT,
    IMAGE
};

enum MOVEWAY//平移类型
{
    NONE,
    LEFTTORIGHT,
    RIGHTTOLEFT,
    UPTODOWN,
    DOWNTOUP
};

class SwitchPicture : public QWidget
{
    Q_OBJECT
public:
    explicit SwitchPicture(CTRLTYPE CtrlType = TEXT, QTimer *tm_switch = NULL, QWidget *parent = 0);

public:
    QTimer    *tm_switch;//示意图文切换定时器
    CTRLTYPE  CtrlType;

public:
    QLabel    *lb_picture;//示意图
    QMovie    *mv_media;//多媒体播放
    long      switchmsec;//示意图切换定时器切换间隔(毫秒数)
    long      staymsec;//示意图停留时间(毫秒数)
    QGraphicsOpacityEffect *pictureeffect;//示意图透明度样式
    double    opacity;//透明度值
    double    opacityinterval;//淡入淡出透明度变化间隔
    long      switchcase;//淡入淡出中间状态标志
    long      switchturn;//示意图标号
    long      pageindex;//页面序号{0,1,2...}
    QList<QList<QString>> pictureresourceslist;//示意图与文字说明容器
    MOVEWAY   movein;
    MOVEWAY   moveout;

public:
    //*初始化与切换*//
    void initPage(long pageindex);//初始化页面:停止计时器,初始化示意图与文字提示,然后初始化画面效果
    void initOpacityWithTimer();//初始化画面效果,并打开计时器开启切换效果
    void switchToNext(long nextturn);//切换到对应图片或文字
    void setPictureOpacity();//设置透明度与位移效果
    //*设置切换效果参数*//
    void setOpacityInterval(double opacityinterval = 0.05);//设置透明度渐变粒度
    void setSwitchMsec(long switchmsec = 30, long staymsec = 
  • 2
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 7
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值