基于Qt的汽车仪表模拟

程序体验地址:https://pan.baidu.com/s/1rQFZx5JIud8lWdjMHl0tpg

目前版本还没有成功把字体打包的程序中,为了更好的效果体验,请先安装文件中的两个字体

先看下效果

 

HMI-8-[Qt 播放GIF动画]:启动画面的实现_启动

这个动画的制作,有很多种方式,我制作的方式有点笨重。

1. 在网上找AE模板,选择喜欢的,改吧改吧,其实就是替换一个图标。

2.完了可以使用pr调出序列,

3.制作成的GIF

 

再2的步骤上面可以偷懒,可以直接使用GIF录制工具,直接生成GIF动画。

 

剩下的就是在Qt中来调用这个GIF了。对于Qt来说,GIF也是电影,这里需要使用到Qt的QMoive类。为了保证我的这个启动动画在后面还可以被用到,我把这个启动logo简单的封装了一下。

 

HMI-8-[Qt 播放GIF动画]:启动画面的实现_引导_02

这个东西开始是在放在了液晶仪表的文件夹下面,

 

HMI-8-[Qt 播放GIF动画]:启动画面的实现_过渡_03

所以文件名称前面加了好meter,是我没有考虑好,现在把他移植一下,先把他放到我的Core中吧。

 

HMI-8-[Qt 播放GIF动画]:启动画面的实现_启动_04

对应的整个框架也有点点变化

 

HMI-8-[Qt 播放GIF动画]:启动画面的实现_GIF_05

实现代码

 

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动画,这里加入了动画播放结束的判断,等待动画播放结束的时候,发送动画播放完成信号。

 

HMI-8-[Qt 播放GIF动画]:启动画面的实现_过渡_06

2019/08/25 12:43