HMI-43-【节能模式】顶部标题栏和底部信息栏及灯光及启动动画

496 阅读3分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

头图

HMI-43-【节能模式】顶部标题栏和底部信息栏及灯光及启动动画

今天来实现以下节能模式的Title底部信息栏,灯光系统,以及启动动画。

当前进度

到今天位置,三个模式基本有了雏形,总算有个交代了,哎呀呀,感谢众多网友的支持,才得以坚持到这里。


HMI-43-【节能模式】顶部标题栏和底部信息栏及灯光及启动动画当前进度顶部信息栏底部信息栏灯光启动动画藏在缝隙里面的话第二阶段成果展示第一阶段成果展示

关键字: HIMIQPainterQtlighteco

顶部信息栏

顶部信息栏基本和前面两个模式没有太多的区别。直接贴部分代码

void MDE_Title::setTime(QString time)
{
    ui->label_time->setText(time);
}
​
void MDE_Title::setDirection(int direction)
{
    m_Direction = direction;
    switch (direction) {
    case DIRECTION_N:
        ui->label_direction_text->setText("N");
        break;
    case DIRECTION_NE:
        ui->label_direction_text->setText("NE");
        break;
    case DIRECTION_E:
        ui->label_direction_text->setText("E");
        break;
    case DIRECTION_SE:
        ui->label_direction_text->setText("SE");
        break;
    case DIRECTION_S:
        ui->label_direction_text->setText("S");
        break;
    case DIRECTION_SW:
        ui->label_direction_text->setText("SW");
        break;
    case DIRECTION_W:
        ui->label_direction_text->setText("W");
        break;
    case DIRECTION_NW:
        ui->label_direction_text->setText("NW");
        break;
    }
}
​
void MDE_Title::setTemperature(QString temperature)
{
    ui->label_temperature->setText(temperature);
}
​
bool MDE_Title::eventFilter(QObject *watched, QEvent *event)
{
    if(watched == ui->label_direction && event->type() == QEvent::Paint)
        drawDirection(m_Direction);
    return QWidget::eventFilter(watched,event);
}
​
void MDE_Title::drawDirection(int direction)
{
    QPainter painter(ui->label_direction);
    painter.setRenderHint((QPainter::SmoothPixmapTransform));
    painter.setRenderHint(QPainter::HighQualityAntialiasing);
    painter.translate(20,20);
    painter.save();
    painter.rotate(direction*45+90);
    painter.drawPixmap(-16,-10,32,20,QPixmap(":/Economic/Resources/MeterDisplay/Economic/MDET/Direction/7.png"));
    painter.restore();
}

底部信息栏

这个和运动不是一模一样。没有代码。

灯光

三个模式用的是一个灯光控制,除了位置有点区别外,其他没有区别。

启动动画

启动动画还是前面的,直接搬过来用就可以。

void MD_Economic::slotShaoAll(int number)
{
    m_title->setGeometry(0,-110+1.1*number,1920,110);
    if(m_title->y() >-110)
    {
        m_title->show();
    }
​
    m_bottom->setGeometry(0,790-1.4*number,1920,70);
    if(m_bottom->y()<720)
    {
        m_bottom->show();
    }
​
    m_left->setGeometry(-500 +6.2*number,130,500,460);
    if(m_left->x()>-500)
    {
        m_left->show();
    }
    m_center->setGeometry((622+ (675/2.0 - 675.0/200.0*number)),(27+ (674/2 - 674/200.0*number)),6.75*number,6.74*number);
    if(m_center->width()>10)
    {
        m_center->show();
        if(m_center->width() == 675)
        {
//            m_center->powerUpFinished();
        }
    }
    m_right->setGeometry(2420 - 11.2*number,130,500,460);
    if(m_right->x()< 1920)
    {
        m_right->show();
    }
    if(number == 100)
    {
        emit signalPowerUpfinished();
        m_lightControl->show();
    }
​
}

藏在缝隙里面的话

能写到这里,真的要感谢众多的网友的支持,多亏了大家前期的支持及鼓励。才能有今天写完的这一刻。和面准写多媒体模块了,UI已经找美术在做了。就是照搬吉利博瑞 2017块的多媒体。期待吧。

第二阶段成果展示

目前以完成HUD界面及接口开发,液晶仪表舒适模式和运动模式的开发。展示如下:

[video(video-2AqJ88TY-1645273728489)(type-bilibili)(url-player.bilibili.com/player.html…img-blog.csdnimg.cn/img_convert…基于Qt的汽车仪表模拟 2.0)]

第一阶段成果展示

目前以完成HUD界面及接口开发,液晶仪表舒适模式开发。展示如下:

[video(video-ArCvRvBQ-1642664938100)(type-bilibili)(url-player.bilibili.com/player.html…img-blog.csdnimg.cn/img_convert…基于Qt的汽车仪表模拟 1.0))]


说明:

本项目中所使借鉴原型来自:[吉利] 博瑞GE | 仪表HMI设计吉利汽车HMI项目

设计图的所有权和解释权都归吉利汽车所有。

本项目所有资源文件均由**打不死的小海**复刻制作。

本项目代码暂时不会开源,有需要的源码的可与我联系,左上角二维码加微信。

本项目仅限学习交流、禁止商业使用。