基于Qt的汽车仪表模拟
程序体验地址:https://pan.baidu.com/s/1rQFZx5JIud8lWdjMHl0tpg
目前版本还没有成功把字体打包的程序中,为了更好的效果体验,请先安装文件中的两个字体
先看下效果
这个动画的制作,有很多种方式,我制作的方式有点笨重。
1. 在网上找AE模板,选择喜欢的,改吧改吧,其实就是替换一个图标。
2.完了可以使用pr调出序列,
3.制作成的GIF
再2的步骤上面可以偷懒,可以直接使用GIF录制工具,直接生成GIF动画。
剩下的就是在Qt中来调用这个GIF了。对于Qt来说,GIF也是电影,这里需要使用到Qt的QMoive类。为了保证我的这个启动动画在后面还可以被用到,我把这个启动logo简单的封装了一下。
这个东西开始是在放在了液晶仪表的文件夹下面,
所以文件名称前面加了好meter,是我没有考虑好,现在把他移植一下,先把他放到我的Core中吧。
对应的整个框架也有点点变化
实现代码
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动画,这里加入了动画播放结束的判断,等待动画播放结束的时候,发送动画播放完成信号。
2019/08/25 12:43