HMI-41-【节能模式】右侧表小汽车灯光实现

昨天我们把坐车的平均油耗给给搞了一下,今天我们搞一下右侧这个小汽车加灯光。这个目前不会做的太细,先实现面上的东西。

HMI-41-【节能模式】右侧表小汽车灯光实现_QPainter

当前进度

今天这个搞完,基本面上三大部分先凑出来了,还差的就是顶部信息,底部信息、水温表和油量表。

HMI-41-【节能模式】右侧表小汽车灯光实现_light_02





文章目录






关键字:​ ​​HIMI​​​、​​QPainter​​​、​​Qt​​​、​​light​​​、​​eco​


小汽车

小汽车其实就是一个图片,后面可以在做的更细,比如开门,安全带检测、后备箱、机舱盖等等。先凑点东西,主要还是美工资源没有。主要看下扥光控制,分为两部分,近光和远光。代码如下

void MDE_Right_Car::setLight_Near(bool temp)
{
if(temp)
ui->label_Led_1->show();
else
ui->label_Led_1->hide();
}

void MDE_Right_Car::setLight_Far(bool tempL, bool tempR)
{
if(tempL)
ui->label_Led2_left->show();
else
ui->label_Led2_left->hide();
if(tempR)
ui->label_Led2_right->show();
else
ui->label_Led2_right->hide();


}

剩下就是一步一步吧这接口引出到控制台。过程不表。

控制逻辑

这里其实我用错了Radio Button的槽函数了,不过还可以使用,就下先不改了,等后面该控制台的时候在慢慢调。

void ControlPanel::initMainControl()
{
m_maincontrol = new MainControl(ui->tab_maincontrol);
m_maincontrol->setGeometry(0,0,1366,768);
connect(m_maincontrol,&MainControl::signal_btnPowerClicked,this,&ControlPanel::slot_powerUpControl);
connect(m_maincontrol,&MainControl::signal_keyPress,this,&ControlPanel::slot_keyBoardPress);
connect(m_maincontrol,&MainControl::signal_keyRelease,this,&ControlPanel::slot_keyBoardRelease);
connect(m_maincontrol,&MainControl::signal_Accelerator,this,[=](int accelerator){if(m_enging)m_enging->engintAccelerator(accelerator);});
connect(m_maincontrol,&MainControl::signal_CarSpeed,this,[=](int speed){m_meterDisplay->setCarSpeed(speed);});
connect(m_maincontrol,&MainControl::signal_Fuelconsumption,this,[=](int rafe){m_meterDisplay->setFuelConsumption(rafe/10.0);});
connect(m_maincontrol,&MainControl::signal_OilChanged,this,[=](int oil){m_meterDisplay->setOilMass(oil);});
connect(m_maincontrol,&MainControl::signal_WaterChanged,this,[=](int water){m_meterDisplay->setEngineTemperatur(water);});
connect(m_maincontrol,&MainControl::signal_Light,this,[=](int temp){

qDebug() << temp;

switch (temp) {
case 0:
{
m_meterDisplay->setLight_Near(false);
m_meterDisplay->setLight_Far(false,false);
break;
}
case 1:
{

break;
}
case 2:
{
m_meterDisplay->setLight_Near(true);
m_meterDisplay->setLight_Far(false,false);
break;
}
case 3:
{

break;
}
case 4:
{
m_meterDisplay->setLight_Near(true);
m_meterDisplay->setLight_Far(true,true);
break;
}
case 5:
{

break;
}
case 6:
{
m_meterDisplay->setLight_Near(true);
m_meterDisplay->setLight_Far(true,false);
break;
}
case 7:
{

break;
}
case 8:
{
m_meterDisplay->setLight_Near(true);
m_meterDisplay->setLight_Far(false,true);
break;
}
case 9:
{

break;
}

}

});
}

第二阶段成果展示

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


基于Qt的汽车仪表模拟 2.0


第一阶段成果展示

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


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


说明:

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

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

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

本项目代码暂时不会开源,有需要的源码的可与我联系,

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