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

116 阅读2分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

头图

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

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

当前进度

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


HMI-41-【节能模式】右侧表小汽车灯光实现当前进度小汽车控制逻辑第二阶段成果展示第一阶段成果展示

关键字: HIMIQPainterQtlighteco

小汽车

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

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界面及接口开发,液晶仪表舒适模式和运动模式的开发。展示如下:

[video(video-2AqJ88TY-1645273728489)(type-bilibili)(url-player.bilibili.com/player.html…img-blog.csdnimg.cn/img_convert…基于Qt的汽车仪表模拟 2.0)]

第一阶段成果展示

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

[video(video-ArCvRvBQ-1642664938100)(type-bilibili)(url-player.bilibili.com/player.html…img-blog.csdnimg.cn/img_convert…基于Qt的汽车仪表模拟 1.0))]


说明:

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

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

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

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

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