分析一下github中项目的软件启动画面的实现
2015-06-17 16:51
513 查看
引用这个老外的一些资源了呀。。。。。。。。。。。。。。。。。
![](http://img.blog.csdn.net/20150617164746618?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvc2hlbGxfYWxiZXJ0/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
![](http://img.blog.csdn.net/20150617164746618?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvc2hlbGxfYWxiZXJ0/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
![](http://img.blog.csdn.net/20150617164759543?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvc2hlbGxfYWxiZXJ0/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
![](http://img.blog.csdn.net/20150617164804523?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvc2hlbGxfYWxiZXJ0/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
![](http://img.blog.csdn.net/20150617164810320?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvc2hlbGxfYWxiZXJ0/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
![](http://img.blog.csdn.net/20150617164814361?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvc2hlbGxfYWxiZXJ0/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
![](http://img.blog.csdn.net/20150617164819064?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvc2hlbGxfYWxiZXJ0/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
![](http://img.blog.csdn.net/20150617164824164?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvc2hlbGxfYWxiZXJ0/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
看到了,很简单,就是一帧帧的png图片。下面是他的代码,就是开启一个定时器,每隔一段时间刷新出一帧新的图片,
当所有图片显示完成后,启动界面结束。感觉还不如整个gif图片呢。其实这倒无所谓,反正动画(电影)也就是一帧帧的图像组成的。
by zhangshaoyan at June 17,2015.
看到了,很简单,就是一帧帧的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.
相关文章推荐
- c/c++(疑5) 说了那么多,来试一试最简单的
- 如果在线显示php源代码
- java 正则表达式例子, 查找字符串
- java.lang.OutOfMemoryError: Java heap space解决方法
- java之二叉树和为某一值的路径
- java时间戳
- 代码大全实战
- java时间戳
- C语言----多维数组
- java中Pattern.compile函数的相关解释
- 回车(\r)和换行(\n)真蛋疼
- C语言----函数指针
- php源码分析之DZX1.5字符串截断函数cutstr用法
- Java最著名的开源项目
- phpmailer
- 【failed to create java virtual machine】 解决方案
- python各种类型转换-int,str,char,float,ord,hex,oct等
- 【好程序员笔记分享】—— C语言中的宏定义
- 关于java.lang.UnsatisfiedLinkError的小案例
- eclipse 中文乱码问题解决