HMI-33-【运动模式】补上油量表和水温表

​ 上一篇,以为是做了一个收尾,写了灯光控制面板和底部的信息栏,但是,有位眼见的小伙伴江山壹角,直接不给我面子,说我的水温表和油量表不会动。截图位置,我记仇哈。

​ 所以今天我们的这篇文章就是实现下水温表和油量表,别看就加起来就16个方块,我写了两个晚上,今天这个也顺带吧转向带的控制代码横展过来,目前呢,转向灯用的还是定时器控制的 ,可以在不同的电脑上有不同的表现了,后期小伙伴如果发现频率不同步的话,可以使用线程产生定时器,来替换我的定时器即可。


文章目录

  • HMI-33-【运动模式】补上油量表和水温表
    • 增加转向灯控制代码
    • 水温表和油量表代码实现
    • 目前进度
    • 第一阶段成果展示

关键字: HMI油量表水温表uiQt

增加转向灯控制代码

​ 转向灯控制代码不用动脑子,我UI也是从舒适模式粘贴过来的,所带代码也是可以横展过来的。核心部分如下:

void MDS_LightControl::selfInspection()
{ui->label_turnlight_l->show();ui->label_turnlight_r->show();QTimer::singleShot(2000,this,[=](){ui->label_turnlight_l->hide();ui->label_turnlight_r->hide();});
}void MDS_LightControl::setTurnLight(turnLight light)
{switch (light) {case m_turnLightLeft:{if(m_timerTurnRight->isActive()){m_timerTurnRight->stop();ui->label_turnlight_r->hide();}m_timerTurnLeft->start(1000);break;}case m_turnLightRight:{if(m_timerTurnLeft->isActive()){m_timerTurnLeft->stop();ui->label_turnlight_l->hide();}m_timerTurnRight->start(1000);break;}case m_turnLightWarning:{m_timerTurnLeft->stop();m_timerTurnRight->stop();m_timerTurnLeft->start(1000);m_timerTurnRight->start(1000);break;}case m_turnLightOff:{if(m_timerTurnLeft->isActive()){m_timerTurnLeft->stop();ui->label_turnlight_l->hide();}if(m_timerTurnRight->isActive()){m_timerTurnRight->stop();ui->label_turnlight_r->hide();}break;}}
}

水温表和油量表代码实现

​ 这个在计算是时候,我用了程序计算机,哎,这个计算机,谁用谁知道,除法不带小数呀,开始算的大半段都白写了,后面才反应过来。小伙伴们要注意哦。运动模式下的水温表和油量表和舒适模式不一样,不是连续的,类似于一格一格的吧。具体可以看下面的动画。这里直接贴上核心代码:

/*** @brief MDS_Center::drawOil* @param angle* 绘制油量表*/
void MDS_Center::drawOil(int percentage)
{//半径350QPainter painter(ui->label_drawOil);painter.setRenderHint((QPainter::SmoothPixmapTransform));painter.setRenderHint(QPainter::HighQualityAntialiasing);painter.translate(-43,-195);painter.save();painter.setPen(QPen(Qt::white,5,Qt::SolidLine));if(percentage>0 && percentage <= 13){painter.drawArc(-315,-315,630,630,279*16,4*16);}else if(percentage>13 && percentage<=25){painter.drawArc(-315,-315,630,630,279*16,4*16);painter.drawArc(-315,-315,630,630,285*16,3*16);}else if(percentage>25 && percentage<=38){painter.drawArc(-315,-315,630,630,279*16,4*16);painter.drawArc(-315,-315,630,630,285*16,3*16);painter.drawArc(-315,-315,630,630,290*16,3*16);}else if(percentage>38 && percentage<=50){painter.drawArc(-315,-315,630,630,279*16,4*16);painter.drawArc(-315,-315,630,630,285*16,3*16);painter.drawArc(-315,-315,630,630,290*16,3*16);painter.drawArc(-315,-315,630,630,295*16,3*16+8);}else if(percentage>50 && percentage<=63){painter.drawArc(-315,-315,630,630,279*16,4*16);painter.drawArc(-315,-315,630,630,285*16,3*16);painter.drawArc(-315,-315,630,630,290*16,3*16);painter.drawArc(-315,-315,630,630,295*16,3*16+8);painter.drawArc(-315,-315,630,630,301*16+8,3*16+6);}else if(percentage>63 && percentage<=75){painter.drawArc(-315,-315,630,630,279*16,4*16);painter.drawArc(-315,-315,630,630,285*16,3*16);painter.drawArc(-315,-315,630,630,290*16,3*16);painter.drawArc(-315,-315,630,630,295*16,3*16+8);painter.drawArc(-315,-315,630,630,301*16+8,3*16+6);painter.drawArc(-315,-315,630,630,307*16,3*16);}else if(percentage>76 && percentage<=88){painter.drawArc(-315,-315,630,630,279*16,4*16);painter.drawArc(-315,-315,630,630,285*16,3*16);painter.drawArc(-315,-315,630,630,290*16,3*16);painter.drawArc(-315,-315,630,630,295*16,3*16+8);painter.drawArc(-315,-315,630,630,301*16+8,3*16+6);painter.drawArc(-315,-315,630,630,307*16,3*16);painter.drawArc(-315,-315,630,630,312*16,3*16);}else if(percentage>88 && percentage<=100){painter.drawArc(-315,-315,630,630,279*16,4*16);painter.drawArc(-315,-315,630,630,285*16,3*16);painter.drawArc(-315,-315,630,630,290*16,3*16);painter.drawArc(-315,-315,630,630,295*16,3*16+8);painter.drawArc(-315,-315,630,630,301*16+8,3*16+6);painter.drawArc(-315,-315,630,630,307*16,3*16);painter.drawArc(-315,-315,630,630,312*16,3*16);painter.drawArc(-315,-315,630,630,317*16,4*16);}painter.restore();
}
/*** @brief MDS_Center::drawWater* @param angle* 绘制水温表*/
void MDS_Center::drawWater(int percentage)
{QPainter painter(ui->label_drawWater);painter.setRenderHint((QPainter::SmoothPixmapTransform));painter.setRenderHint(QPainter::HighQualityAntialiasing);painter.translate(257,-195);painter.save();painter.setPen(QPen(Qt::white,5,Qt::SolidLine));if(percentage>0 && percentage <= 13){painter.drawArc(-315,-315,630,630,257*16,4*16);}else if(percentage>13 && percentage<=25){painter.drawArc(-315,-315,630,630,252*16,3*16);painter.drawArc(-315,-315,630,630,257*16,4*16);}else if(percentage>25 && percentage<=38){painter.drawArc(-315,-315,630,630,247*16,3*16);painter.drawArc(-315,-315,630,630,252*16,3*16);painter.drawArc(-315,-315,630,630,257*16,4*16);}else if(percentage>38 && percentage<=50){painter.drawArc(-315,-315,630,630,241*16,4*16);painter.drawArc(-315,-315,630,630,247*16,3*16);painter.drawArc(-315,-315,630,630,252*16,3*16);painter.drawArc(-315,-315,630,630,257*16,4*16);}else if(percentage>50 && percentage<=63){painter.drawArc(-315,-315,630,630,235*16,4*16);painter.drawArc(-315,-315,630,630,241*16,4*16);painter.drawArc(-315,-315,630,630,247*16,3*16);painter.drawArc(-315,-315,630,630,252*16,3*16);painter.drawArc(-315,-315,630,630,257*16,4*16);}else if(percentage>63 && percentage<=75){painter.drawArc(-315,-315,630,630,230*16,3*16);painter.drawArc(-315,-315,630,630,235*16,4*16);painter.drawArc(-315,-315,630,630,241*16,4*16);painter.drawArc(-315,-315,630,630,247*16,3*16);painter.drawArc(-315,-315,630,630,252*16,3*16);painter.drawArc(-315,-315,630,630,257*16,4*16);}else if(percentage>76 && percentage<=88){painter.drawArc(-315,-315,630,630,225*16,3*16);painter.drawArc(-315,-315,630,630,230*16,3*16);painter.drawArc(-315,-315,630,630,235*16,4*16);painter.drawArc(-315,-315,630,630,241*16,4*16);painter.drawArc(-315,-315,630,630,247*16,3*16);painter.drawArc(-315,-315,630,630,252*16,3*16);painter.drawArc(-315,-315,630,630,257*16,4*16);}else if(percentage>88 && percentage<=100){painter.drawArc(-315,-315,630,630,219*16,4*16);painter.drawArc(-315,-315,630,630,225*16,3*16);painter.drawArc(-315,-315,630,630,230*16,3*16);painter.drawArc(-315,-315,630,630,235*16,4*16);painter.drawArc(-315,-315,630,630,241*16,4*16);painter.drawArc(-315,-315,630,630,247*16,3*16);painter.drawArc(-315,-315,630,630,252*16,3*16);painter.drawArc(-315,-315,630,630,257*16,4*16);}painter.restore();
}

目前进度

第一阶段成果展示

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

全网最帅Qt开发吉利汽车仪表


说明:

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

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

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

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

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


HMI-33-【运动模式】补上油量表和水温表相关推荐

  1. HMI-42-【节能模式】实现油量表和水温表

    HMI-42-[节能模式]实现油量表和水温表 ​ 今天我来搞一下水温表和油量表.其实就是两个进度条.搞一下. 当前进度 ​ 今天完成了油量表和水温表的实现.演示如下.当水温大于80 或油量小于10%时 ...

  2. 自动驾驶决策控制及运动规划史上最详细最接地气综述

    作者 | Ismiracle  编辑 | 汽车人 原文链接:https://zhuanlan.zhihu.com/p/260707853 点击下方卡片,关注"自动驾驶之心"公众号 ...

  3. 自动驾驶决策控制及运动规划史上最详细最接地气总览现状!

    / 导读 / 本人方向为自动驾驶决策控制与运动规划(Decision Making And Motion Planning, DMAP),先前在某SCI期刊发了一篇review(抱老板大腿),SCI文 ...

  4. 权威发布丨2022 中国开源先锋 33 人之心尖上的开源人物

    国家政策的扶持,开源在千行百业的应用,有人说开源最好的时代到了: 全球政治经济环境的快速变化,疫情的肆虐,有人说最寒冷的时代到了. 开源社主办的 COSCon'22 中国开源年会上,我们也以「开源站在 ...

  5. DolphinScheduler PMC Chair 代立冬入选 2021 中国开源先锋 33 人之心尖上的开源人物!...

    # 前言 "开源"是 2021 中国技术发展的年度热词,越来越多人关注开源.贡献开源. 在本土,"开源"作为国家战略被首次写入国家"五年规划" ...

  6. 权威发布丨2021 中国开源先锋 33 人之心尖上的开源人物

    | 作者:SegmentFault | 编辑:王玥敏 # 前言 "开源"是 2021 中国技术发展的年度热词,越来越多人关注开源.贡献开源. 在本土,"开源"作 ...

  7. 权威发布|恭喜 Apache Doris PPMC 陈明雨入选 2021 中国开源先锋 33 人之心尖上的开源人物...

    # 前言 "开源"是 2021 中国技术发展的年度热词,越来越多人关注开源.贡献开源. 在本土,"开源"作为国家战略被首次写入国家 "五年规划&quo ...

  8. 荣耀手表magic2更新鸿蒙时间表,荣耀手表2更新百种运动模式 618期间到手价799元起...

    中关村在线消息:今日,@荣耀智慧生活 官方微博发布信息,荣耀手表2更新百种运动模式,而且618期间到手价799元起.也就是说,荣耀手表2运动场景覆盖的更多,而且现在价格更低,喜欢的朋友可以现在入手了. ...

  9. 《中国人工智能学会通讯》——12.33 众包知识库补全方法概览

    12.33 众包知识库补全方法概览 本章介绍众包知识库补全的方法概览,如图 1所示.其基本思想包含两个部分,其一,利用多种数据源,如现有的多个知识库.Web 结构化数据等,提取知识数据,并将不同数据源 ...

最新文章

  1. [JavaScript] JavaScript数组挖掘,不只是讲数组哟(2)
  2. Python中常见的数据类型小结
  3. Java命令学习系列(二)——Jstack
  4. Python案例:两种方法实现词频统计
  5. 双活架构保服务24小时在线
  6. python编程入门-Python 基础教程
  7. cacti 监控添加插件
  8. 最新版校园招聘进大厂系列----------(4)京东篇 -----未完待续
  9. 常见的宏观经济指标介绍
  10. vue子父组件之间的传值
  11. 【简答题】JavaWeb必问10道简答题
  12. 穿越Java - 基础篇 第三章 面向对象介绍 | 第4节 成员变量和局部变量
  13. 声临其境,轻松几步教你把音频变成3D环绕音
  14. 微信答题竞赛的小程序
  15. 《windows》win10禁用默认输入法
  16. Python-Flask
  17. Linux下配置网卡信息
  18. EXCEL批量删除单元格样式
  19. 安卓listview默认布局总结
  20. DayDayUp:上海地铁线路高清图、1~17号地铁线路各站点名称及对应路线集合之详细攻略

热门文章

  1. 北京国际康培计算机技术学校,2019年IB统考成绩最新汇总,北京哪所国际学校分数最高?...
  2. up考研资料更新目录
  3. python .txt文件转.csv文件-ok
  4. es6删除数组某一项_什么时候用集合,什么时候用数组?一文帮你清晰界定
  5. 植物大战僵尸无限阳光(包括阳光基址的寻找)
  6. vue 移入显示_vue鼠标移入显示点赞图标,移出隐藏点赞图标,现在我想点击点赞图标,鼠标移出不会隐藏图标,怎么做?...
  7. 2018最新Python视频教程
  8. MySQL: 备份 导入备份
  9. Blazor预研与实战
  10. Android Surface 介绍