资讯详情

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

头图

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

今天我要做的是中心的表,指针是速度表 油耗表显示在中心。


文章目录

  • HMI-29-【运动模式】实现转速表和中心油耗仪表
    • 实现转速表
    • 实现油耗表
    • 整体进度
    • 展示第一阶段成果

QPainternumberOpacityStyleSheetQt

实现转速表

前面的准备工作还是一样的,从PS导出所需的资源文件,并在稍微加工的情况下将资源文件导入项目。速度表比速度稍微简单一点,因为它是一个标准的圆,只需绘制图片并控制旋转角度。代码如下:

void MDS_Center::drawPointer(int angle) {     QPainter painter(ui->label_pointer);     painter.setRenderHint((QPainter::SmoothPixmapTransform));     painter.setRenderHint(QPainter::HighQualityAntialiasing);     painter.translate(337,337);     painter.save();     painter.rotate(angle);     painter.drawPixmap(-960),-360,1920,720,QPixmap(":/Sport/Resources/MeterDisplay/Sport/MDSC/pointer.png"));     painter.drawPixmap(-213,-213,426,426,QPixmap(":/Sport/Resources/MeterDisplay/Sport/MDSC/hu.png"));     painter.setOpacity(m_shadeOpacity);     painter.drawPixmap(-960),-360,1920,720,QPixmap(":/Sport/Resources/MeterDisplay/Sport/MDSC/shadow.png"));     painter.restore(); } 

实现油耗表

油耗表和以往舒适模式下的内容一直在分析数字,替换资源,代码如下:

void MDS_CenteerMiniDisplay::drawRAFE(double rafe) {     int point,one,ten,temp;     temp = rafe*10;     point = temp;     one = temp0/10;     ten = temp/100;      switch (point) {     default:     {         ui->label_1->setStyleSheet("QLabel{border-image:url(:/Sport/Resources/MeterDisplay/Sport/MDSC/number/0.png);}");         break;     }     case 0:     {         ui->label_1->setStyleSheet("QLabel{border-image:url(:/Sport/Resources/MeterDisplay/Sport/MDSC/number/0.png);}");         break;     }     case 1:     {         ui->label_1->setStyleSheet("QLabel{border-image:url(:/Sport/Resources/MeterDisplay/Sport/MDSC/number/1.png);}");         break;     }     case 2:     {         ui->label_1->setStyleSheet("QLabel{border-image:url(:/Sport/Resources/MeterDisplay/Sport/MDSC/number/2.png);}");         break;     }     case 3:     {         ui->label_1->setStyleSheet("QLabel{border-image:url(:/Sport/Resources/MeterDisplay/Sport/MDSC/number/3.png);}");         break;     }     case 4:     {         ui->label_1->setStyleSheet("QLabel{border-image:url(:/Sport/Resources/MeterDisplay/Sport/MDSC/number/4.png);}");         break;     }     case 5:     {         ui->label_1->setStyleSheet("QLabel{border-image:url(:/Sport/Resources/MeterDisplay/Sport/MDSC/number/5.png);}");         break;     }     case 6:     {         ui->label_1->setStyleSheet("QLabel{border-image:url(:/Sport/Resources/MeterDisplay/Sport/MDSC/number/6.png);}");         break;     }     case 7:     {         ui->label_1->setStyleSheet("QLabel{border-image:url(:/Sport/Resources/MeterDisplay/Sport/MDSC/number/7.png);}");         break;     }     case 8:     {         ui->label_1->setStyleSheet("QLabel{border-image:url(:/Sport/Resources/MeterDisplay/Sport/MDSC/number/8.png);}");         break;     }     case 9:     {         ui->label_1->setStyleSheet("QLabel{border-image:url(:/Sport/Resources/MeterDisplay/Sport/MDSC/number/9.png);}");         break;     }      }      switch (one) {     default:     {         ui->label_2->setStyleSheet("QLabel{border-image:url(:/Sport/Resources/MeterDisplay/Sport/MDSC/number/0.png);}");         break;     }     case 0:     {         ui->label_2->setStyleSheet("QLabel{border-image:url(:/Sport/Resources/MeterDisplay/Sport/MDSC/number/0.png);}");         break;     }     case 1:     {         ui->label_2->setStyleSheet("QLabel{border-image:url(:/Sport/Resources/MeterDisplay/Sport/MDSC/number/1.png);}");         break;     }     case 2:     {         ui->label_2->setStyleSheet("QLabel{border-image:url(:/Sport/Resources/MeterDisplay/Sport/MDSC/number/2.png);}");         break;     }     case 3:     {         ui->label_2->setStyleSheet("QLabel{border-image:url(:/Sport/Resources/MeterDisplay/Sport/MDSC/number/3.png);}");         break;     }     case 4:     {         ui->label_2->setStyleSheet("QLabel{border-image:url(/Sport/Resources/MeterDisplay/Sport/MDSC/number/4.png);}");
        break;
    }
    case 5:
    {
        ui->label_2->setStyleSheet("QLabel{border-image:url(:/Sport/Resources/MeterDisplay/Sport/MDSC/number/5.png);}");
        break;
    }
    case 6:
    {
        ui->label_2->setStyleSheet("QLabel{border-image:url(:/Sport/Resources/MeterDisplay/Sport/MDSC/number/6.png);}");
        break;
    }
    case 7:
    {
        ui->label_2->setStyleSheet("QLabel{border-image:url(:/Sport/Resources/MeterDisplay/Sport/MDSC/number/7.png);}");
        break;
    }
    case 8:
    {
        ui->label_2->setStyleSheet("QLabel{border-image:url(:/Sport/Resources/MeterDisplay/Sport/MDSC/number/8.png);}");
        break;
    }
    case 9:
    {
        ui->label_2->setStyleSheet("QLabel{border-image:url(:/Sport/Resources/MeterDisplay/Sport/MDSC/number/9.png);}");
        break;
    }

    }

    switch (ten) {
    default:
    {
        ui->label_3->setStyleSheet("QLabel{border-image:url(:/Sport/Resources/MeterDisplay/Sport/MDSC/number/0.png);}");
        break;
    }
    case 0:
    {
        ui->label_3->setStyleSheet("QLabel{border-image:url(:/Sport/Resources/MeterDisplay/Sport/MDSC/number/0.png);}");
        break;
    }
    case 1:
    {
        ui->label_3->setStyleSheet("QLabel{border-image:url(:/Sport/Resources/MeterDisplay/Sport/MDSC/number/1.png);}");
        break;
    }
    case 2:
    {
        ui->label_3->setStyleSheet("QLabel{border-image:url(:/Sport/Resources/MeterDisplay/Sport/MDSC/number/2.png);}");
        break;
    }
    case 3:
    {
        ui->label_3->setStyleSheet("QLabel{border-image:url(:/Sport/Resources/MeterDisplay/Sport/MDSC/number/3.png);}");
        break;
    }
    case 4:
    {
        ui->label_3->setStyleSheet("QLabel{border-image:url(:/Sport/Resources/MeterDisplay/Sport/MDSC/number/4.png);}");
        break;
    }
    case 5:
    {
        ui->label_3->setStyleSheet("QLabel{border-image:url(:/Sport/Resources/MeterDisplay/Sport/MDSC/number/5.png);}");
        break;
    }
    case 6:
    {
        ui->label_3->setStyleSheet("QLabel{border-image:url(:/Sport/Resources/MeterDisplay/Sport/MDSC/number/6.png);}");
        break;
    }
    case 7:
    {
        ui->label_3->setStyleSheet("QLabel{border-image:url(:/Sport/Resources/MeterDisplay/Sport/MDSC/number/7.png);}");
        break;
    }
    case 8:
    {
        ui->label_3->setStyleSheet("QLabel{border-image:url(:/Sport/Resources/MeterDisplay/Sport/MDSC/number/8.png);}");
        break;
    }
    case 9:
    {
        ui->label_3->setStyleSheet("QLabel{border-image:url(:/Sport/Resources/MeterDisplay/Sport/MDSC/number/9.png);}");
        break;
    }

    }
}

整体进度

​ 目前已实现转速表,速度表和中心仪表中的油耗表实现,如下图:

第一阶段成果展示

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

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


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

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

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

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

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


标签: 50固态继电器mds75eb

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台