HMI-41-【节能模式】右侧表小汽车灯光实现
昨天我们把坐车的平均油耗给给搞了一下,今天我们搞一下右侧这个小汽车加灯光。这个目前不会做的太细,先实现面上的东西。
当前进度
今天这个搞完,基本面上三大部分先凑出来了,还差的就是顶部信息,底部信息、水温表和油量表。
[TOC]
关键字:
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;
}
}
});
}
说明:
本项目中所使借鉴原型来自:[吉利] 博瑞GE | 仪表HMI设计、吉利汽车HMI项目。
设计图的所有权和解释权都归吉利汽车所有。
本项目所有资源文件均有打不死的小海复刻制作。
本项目代码暂时不会开源,有需要的源码的可与我联系,左上角二维码加微信。
本项目仅限学习交流、禁止商业使用。