HMI-37-节能模式中心仪表实现

Posted DreamLife.

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了HMI-37-节能模式中心仪表实现相关的知识,希望对你有一定的参考价值。

HMI-37-【节能模式】中心仪表实现

​ 节能模式下,做难做的就是中心仪表了,其他两个都很简单了。那么今天就把这个给实现了。

当前进度

​ 当前进度如下,仅实现了发动机转速表的模拟。


文章目录

关键字: HIMIQPainterQtdrawPixmapeco

中心仪表之转速表

​ 中心仪表结构还是大表套小表。今天主要搞大表,也就是转速表。今天的代码没有多少,但是呢,这个素材有点小问题,这个圆看似一个圆,实时却有点不圆,这可给我的UI增加了空难,困与自己PS能力有限,只能在现在的素材技术上稍作修改,在加上代码上的逻辑来稍微弥补一下。效果就如上图所示那样。最终代码是没有多少,折腾了一下午。好在目前的效果,我自己还能接受,凑合看吧。

void MDE_Center::drawPointer(int angle)

    QPainter painter(ui->label_pointer);
    painter.setRenderHint((QPainter::SmoothPixmapTransform));
    painter.setRenderHint(QPainter::HighQualityAntialiasing);
    painter.translate(338,337);
    painter.save();
    painter.rotate(angle);
   /*
    * 以下逻辑判断代码仅仅为解素材资源不是标准圆而写,这样判断其实还是比较暴力的,其实应该是计算一下在圆的弧度啥的,在写个算法来精准匹配,但是我做不到n_n.
    */

    if(angle < 118)
    
        painter.setOpacity(m_shadeOpacity);
        painter.drawPixmap((-336),-337,675,654,QPixmap(":/Economic/Resources/MeterDisplay/Economic/MDEC/shadow.png"));
        painter.setOpacity(1.0);
        painter.drawPixmap((-336),-337,675,654,QPixmap(":/Economic/Resources/MeterDisplay/Economic/MDEC/pointer.png"));
    
    else
    
        painter.setOpacity(m_shadeOpacity);
        painter.drawPixmap((-338),-339,675,654,QPixmap(":/Economic/Resources/MeterDisplay/Economic/MDEC/shadow.png"));
        painter.setOpacity(1.0);
        painter.drawPixmap((-338),-339,675,654,QPixmap(":/Economic/Resources/MeterDisplay/Economic/MDEC/pointer.png"));
    
    painter.restore();


第二阶段成果展示

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

基于Qt的汽车仪表模拟 2.0

第一阶段成果展示

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

基于Qt的汽车仪表模拟 1.0)


说明:

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

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

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

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

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


以上是关于HMI-37-节能模式中心仪表实现的主要内容,如果未能解决你的问题,请参考以下文章

HMI-39-节能模式实现中心仪表转速表自检及左右仪表布局

HMI-39-节能模式实现中心仪表转速表自检及左右仪表布局

HMI-29-运动模式转速表实现及中心油耗仪表实现

HMI-38-节能模式中心仪表mini仪表速度表实现

HMI-40-节能模式平均油耗实现

HMI-40-节能模式平均油耗实现