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

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

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

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

当前进度

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


[TOC]

关键字: 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块的多媒体。期待吧。


说明:

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

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

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

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

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


博客签名2021

相关文章
使用JTS及其姐妹项目GeoTools进行坐标系转换
【6月更文挑战第7天】使用JTS及其姐妹项目GeoTools进行坐标系转换
1466 0
|
JSON 算法 数据安全/隐私保护
brida和frida练习hook逆向技术【中】
本文介绍了如何在未加壳、未混淆的 APK 中定位并破解加密算法,并使用 Burp 插件 autoDecoder 进行自动化加解密及口令爆破。文中详细描述了从反编译到配置插件的全过程,并提供了关键要素如 AES 算法、SECRET_KEY 和 Base64 编码的具体应用。此外,还展示了如何调整并发数以提高爆破成功率。
335 0
brida和frida练习hook逆向技术【中】
|
前端开发 JavaScript API
React与Vue 3:谁在前端框架中更具有优势?
React与Vue 3:谁在前端框架中更具有优势?
|
运维 Kubernetes 安全
15 年行业大咖万字长文解读:后 CentOS 时代,国产操作系统能否扛起大旗?
CentOS 的停服到底会带来哪些影响?如何迁移到国产操作系统?
|
数据可视化 计算机视觉
【计算机视觉】DINOv2的四种模型代码示范(含源代码)
DINOv2利用最大模型ViT-g的知识蒸馏,而不是从头开始训练,从而提高了性能。这个过程包括将知识从更大、更复杂的模型(教师)转移到更小的模型(学生)。学生模型被训练来模仿教师的输出,从而继承其优越的能力。这个过程提高了小型模型的性能,使它们更有效率。
4565 0
|
传感器 人工智能 监控
基于smardaten无代码开发智能巡检系统,让无人机飞得更准
话说现在无人机可真的太火了。各个行业都在用无人机做一些业务场景的开拓,典型的像农业施肥撒药、区域环境监测、城市应急调度、以及电站设备远程巡检等等。由于可以装载视频监控,可以远程传输视频画面监测设备、环境等现状,小小的无人机解决了很多远程工作和重复性工作, 可谓是帮了人工大忙。 相对的,无人机设备智能化提升,后台的数据监测管理的需求也随之而来。
470 0
Avalonia 实现平滑拖动指定控件
Avalonia 实现平滑拖动指定控件
522 0
|
安全 Java 程序员
拥有Java基础对比学习C#基本语法
对于学习一门新的语言,关键是学习新语言和以前掌握的语言的区别,但是也不要让以前语言的东西,固定了自己的思维模式,多看一下新的语言的编程思想。 Java和C#都是面向对象的语言,相似度很大,下面用对比的方式来学习C#。
467 0