HMI-47-【多媒体】Title界面实现 2
今天我将尝试实现以下多媒体部的Title部分,主要是空调出风模式、空调风量、空调模式.
当前进度
[toc]
关键字:
HMI
、Multifunction
、Qt
、light
、eco
空调风向显示
风向界面上就是刷图片,用三个label表示三个风向,通过代码控制三个label的显示和隐藏,来达到显示风向的功能,直接上代码
界面控制代码
void MFD_Title::setWindDirection(int type)
{
switch (type) {
default:
{
ui->label_fengxiang_1->hide();
ui->label_fengxiang_2->hide();
ui->label_fengxiang_3->hide();
}
case 0:
{
ui->label_fengxiang_1->show();
ui->label_fengxiang_2->hide();
ui->label_fengxiang_3->hide();
break;
}
case 1:
{
ui->label_fengxiang_2->show();
ui->label_fengxiang_1->hide();
ui->label_fengxiang_3->hide();
break;
}
case 2:
{
ui->label_fengxiang_3->show();
ui->label_fengxiang_2->hide();
ui->label_fengxiang_1->hide();
break;
}
case 3:
{
ui->label_fengxiang_1->show();
ui->label_fengxiang_2->show();
ui->label_fengxiang_3->hide();
break;
}
case 4:
{
ui->label_fengxiang_1->show();
ui->label_fengxiang_3->show();
ui->label_fengxiang_2->hide();
break;
}
case 5:
{
ui->label_fengxiang_2->show();
ui->label_fengxiang_3->show();
ui->label_fengxiang_1->hide();
break;
}
case 6:
{
ui->label_fengxiang_1->show();
ui->label_fengxiang_2->show();
ui->label_fengxiang_3->show();
break;
}
case 7:
{
ui->label_fengxiang_1->hide();
ui->label_fengxiang_2->hide();
ui->label_fengxiang_3->hide();
break;
}
}
}
控制界面代码
static int WindDirection = 0;
void MainControl::on_pushButton_windDirection_clicked()
{
emit signal_WindDirection(WindDirection);
WindDirection++;
if(WindDirection>7)
WindDirection = 0;
}
控制台代码
connect(m_maincontrol,&MainControl::signal_WindDirection,this,[=](int type){
if(m_multifunction)
m_multifunction->setWindDirection(type);
});
其实如果对接的好,可以直接使用信号槽连接过去,但是呢,这里有部分数据需要做处理,这里我就用的匿名函数来做了。
空调风量实现
直接上代码
实现代码
void MFD_Title::setWindValue(int value)
{
QString style = QString("border-image: url(:/MultifunctionDisplay/Resources/MultifunctionDisplay/Title/fengli_%1.png);").arg(int(value/12.5));
ui->label_fengli->setStyleSheet(style);
}
控制界面代码
void MainControl::on_verticalSlider_WindValue_valueChanged(int value)
{
emit signal_WindValue(value);
}
控制台代码
connect(m_maincontrol,&MainControl::signal_WindValue,this,[=](int value){
if(m_multifunction)
m_multifunction->slot_setWindValue(value);
});
第三阶段成果展示
目前已完成液晶仪表三种模式的初步显示,小模块后期根据精力更新了,主要还得找美术来搞资源,自己能力不够。暂未跟新计划。展示如下:
[video(video-yznBr6e3-1648369267384)(type-bilibili)(url-https://player.bilibili.com/player.html?aid=679609061)(image-https://ucc.alicdn.com/images/user-upload-01/img_convert/4d157e1cb316b007a2cb9790cb2dbfde.png)(title-基于Qt的汽车仪表模拟 3.0)]
第二阶段成果展示
目前以完成HUD界面及接口开发,液晶仪表舒适模式和运动模式的开发。展示如下:
[video(video-2AqJ88TY-1645273728489)(type-bilibili)(url-https://player.bilibili.com/player.html?aid=594179292)(image-https://ucc.alicdn.com/images/user-upload-01/img_convert/e75563c3ce68bc980547dde8f6e265ba.png)(title-基于Qt的汽车仪表模拟 2.0)]
第一阶段成果展示
目前以完成HUD界面及接口开发,液晶仪表舒适模式开发。展示如下:
[video(video-ArCvRvBQ-1642664938100)(type-bilibili)(url-https://player.bilibili.com/player.html?aid=77197267)(image-https://ucc.alicdn.com/images/user-upload-01/img_convert/ccddd04e0cef191fd33d7f58d41adb24.png)(title-基于Qt的汽车仪表模拟 1.0))]
说明:
本项目中所使借鉴原型来自:[吉利] 博瑞GE | 仪表HMI设计、吉利汽车HMI项目。
多媒体部分是来自吉利博瑞2017旗舰版界面所有权和解释权都归吉利汽车所有。
设计图的所有权和解释权都归吉利汽车所有。
本项目所有资源文件均由打不死的小海复刻制作。
本项目代码暂时不会开源,有需要的源码的可与我联系,左上角二维码加微信。
本项目仅限学习交流、禁止商业使用。