程序体验地址:https://pan.baidu.com/s/1rQFZx5JIud8lWdjMHl0tpg
目前版本还没有成功把字体打包的程序中,为了更好的效果体验,请先安装文件中的两个字体
先看下效果
这个动画的制作,有很多种方式,我制作的方式有点笨重。
1. 在网上找AE模板,选择喜欢的,改吧改吧,其实就是替换一个图标。
2.完了可以使用pr调出序列,
3.制作成的GIF
再2的步骤上面可以偷懒,可以直接使用GIF录制工具,直接生成GIF动画。
剩下的就是在Qt中来调用这个GIF了。对于Qt来说,GIF也是电影,这里需要使用到Qt的QMoive类。为了保证我的这个启动动画在后面还可以被用到,我把这个启动logo简单的封装了一下。
实现代码
DisplayStartLogo::DisplayStartLogo(QWidget *parent) : QWidget(parent),ui(new Ui::DisplayStartLogo) { ui->setupUi(this); ui->setupUi(this); m_movie = new QMovie(":/Core/Resources/Core/displaylogo.gif"); m_movie->setSpeed(400); m_framecount = m_movie->frameCount(); connect(m_movie,&QMovie::frameChanged,this,[=](int temp){ if(temp == m_framecount-1) { m_movie->stop(); emit moviefinished(); } }); ui->label_logo->setMovie(m_movie); } DisplayStartLogo::~DisplayStartLogo() { delete ui; } void DisplayStartLogo::selfInspection() { if(m_movie) { m_movie->start(); } }
整个启动动画的实现原理就是播放GIF动画,这里加入了动画播放结束的判断,等待动画播放结束的时候,发送动画播放完成信号。