分析一下github中项目的软件启动画面的实现

引用这个老外的一些资源了呀。。。。。。。。。。。。。。。。。





看到了,很简单,就是一帧帧的png图片。下面是他的代码,就是开启一个定时器,每隔一段时间刷新出一帧新的图片,

当所有图片显示完成后,启动界面结束。感觉还不如整个gif图片呢。其实这倒无所谓,反正动画(电影)也就是一帧帧的图像组成的。


#ifndef LOADSPLASH_H
#define LOADSPLASH_H
 
#include <QObject>
#include <QSplashScreen>
#include <QTimerEvent>
 
//! The LoadSplash class.
/*!
    Animated splash screen.
 */
class LoadSplash : public QObject
{
    Q_OBJECT
public:
 
    //! Constructor LoadSplash class.
    /*!
        Load images
        \param screen Used splash screen
        \param interval Time interval of pictures
        \param parent Parent widget
     */
    explicit LoadSplash(QSplashScreen * screen, int interval, QObject *parent = 0);
 
    //! Start animation.
    void start();
 
private:
    //! Timer Event.
    /*!
        Show images
        \param event Timer event
     */
    void timerEvent(QTimerEvent *event);
 
private:
    QSplashScreen * _screen;   //!< Used splash screen
    QList<QPixmap>  _pixmaps;  //!< List of Pictures
    int             _interval; //!< Time interval of pictures
};
 
#endif // LOADSPLASH_H
 

#include "loadsplash.h"
 
LoadSplash::LoadSplash(QSplashScreen * screen, int interval, QObject *parent) :
    QObject(parent)
{
    _screen   = screen;
    _interval = interval;
 
    _pixmaps.append(QPixmap (":/logos/logoShow1.png"));
    _pixmaps.append(QPixmap (":/logos/logoShow2.png"));
    _pixmaps.append(QPixmap (":/logos/logoShow3.png"));
    _pixmaps.append(QPixmap (":/logos/logoShow4.png"));
    _pixmaps.append(QPixmap (":/logos/logoShow5.png"));
    _pixmaps.append(QPixmap (":/logos/logoShow6.png"));
    _pixmaps.append(QPixmap (":/logos/logoShow7.png"));
}
 
void LoadSplash::start()
{
    startTimer(_interval);
}
 
void LoadSplash::timerEvent(QTimerEvent *event)
{
    if(!_pixmaps.isEmpty())
    {
        _screen->setPixmap(_pixmaps.takeFirst());
    }
    else
    {
        killTimer(event->timerId());
    }
}
 by zhangshaoyan at June 17,2015. 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值