HMI-43-【节能模式】顶部标题栏和底部信息栏及灯光及启动动画

今天来实现以下节能模式的Title底部信息栏,灯光系统,以及启动动画,液晶仪表也就暂时告一段路了。

HMI-43-【节能模式】顶部标题栏和底部信息栏及灯光及启动动画_仪表

当前进度

到今天位置,三个模式基本有了雏形,总算有个交代了,哎呀呀,感谢众多网友的支持,才得以坚持到这里。

HMI-43-【节能模式】顶部标题栏和底部信息栏及灯光及启动动画_qt_02





文章目录






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


顶部信息栏

顶部信息栏基本和前面两个模式没有太多的区别。直接贴部分代码

void MDE_Title::setTime(QString time)
{
ui->label_time->setText(time);
}

void MDE_Title::setDirection(int direction)
{
m_Direction = direction;
switch (direction) {
case DIRECTION_N:
ui->label_direction_text->setText("N");
break;
case DIRECTION_NE:
ui->label_direction_text->setText("NE");
break;
case DIRECTION_E:
ui->label_direction_text->setText("E");
break;
case DIRECTION_SE:
ui->label_direction_text->setText("SE");
break;
case DIRECTION_S:
ui->label_direction_text->setText("S");
break;
case DIRECTION_SW:
ui->label_direction_text->setText("SW");
break;
case DIRECTION_W:
ui->label_direction_text->setText("W");
break;
case DIRECTION_NW:
ui->label_direction_text->setText("NW");
break;
}
}

void MDE_Title::setTemperature(QString temperature)
{
ui->label_temperature->setText(temperature);
}

bool MDE_Title::eventFilter(QObject *watched, QEvent *event)
{
if(watched == ui->label_direction && event->type() == QEvent::Paint)
drawDirection(m_Direction);
return QWidget::eventFilter(watched,event);
}

void MDE_Title::drawDirection(int direction)
{
QPainter painter(ui->label_direction);
painter.setRenderHint((QPainter::SmoothPixmapTransform));
painter.setRenderHint(QPainter::HighQualityAntialiasing);
painter.translate(20,20);
painter.save();
painter.rotate(direction*45+90);
painter.drawPixmap(-16,-10,32,20,QPixmap(":/Economic/Resources/MeterDisplay/Economic/MDET/Direction/7.png"));
painter.restore();
}

底部信息栏

这个和运动不是一模一样。没有代码。

灯光

三个模式用的是一个灯光控制,除了位置有点区别外,其他没有区别。

启动动画

启动动画还是前面的,直接搬过来用就可以。

void MD_Economic::slotShaoAll(int number)
{
m_title->setGeometry(0,-110+1.1*number,1920,110);
if(m_title->y() >-110)
{
m_title->show();
}

m_bottom->setGeometry(0,790-1.4*number,1920,70);
if(m_bottom->y()<720)
{
m_bottom->show();
}

m_left->setGeometry(-500 +6.2*number,130,500,460);
if(m_left->x()>-500)
{
m_left->show();
}
m_center->setGeometry((622+ (675/2.0 - 675.0/200.0*number)),(27+ (674/2 - 674/200.0*number)),6.75*number,6.74*number);
if(m_center->width()>10)
{
m_center->show();
if(m_center->width() == 675)
{
// m_center->powerUpFinished();
}
}
m_right->setGeometry(2420 - 11.2*number,130,500,460);
if(m_right->x()< 1920)
{
m_right->show();
}
if(number == 100)
{
emit signalPowerUpfinished();
m_lightControl->show();
}

}

藏在缝隙里面的话

能写到这里,真的要感谢众多的网友的支持,多亏了大家前期的支持及鼓励。才能有今天写完的这一刻。和面准写多媒体模块了,UI已经找美术在做了。就是照搬吉利博瑞 2017块的多媒体。期待吧。

第二阶段成果展示

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


基于Qt的汽车仪表模拟 2.0


第一阶段成果展示

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


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


说明:

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

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

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

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

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