HMI-27-【运动模式】解决转速表指针弧光

简介: 今天我们要解决的是液晶仪表中运动模式下,转速表指针问题,因为转速表不是标准的圆,需要处理一下下。因为这个代码时间有点长,现在还得好好缓缓,好多接口还得在回去看舒适模式,尽量还是保持统一。


HMI-27-【运动模式】解决转速表指针弧光

今天我们要解决的是液晶仪表中运动模式下,转速表指针问题,因为转速表不是标准的圆,需要处理一下下。因为这个代码时间有点长,现在还得好好缓缓,好多接口还得在回去看舒适模式,尽量还是保持统一。



HMI-27-【运动模式】解决转速表指针弧光实现指针转动改进版本整体进度最后第一阶段成果展示

关键字:QPainterrotateOpacitydrawPixmapQt

实现指针转动

其实实现指针转动好很好实现,只需要在一个label上绘制即可,代码如下:

voidMDS_Left::drawPonter(intangle)

{

   QPainterpainter(ui->label_pointer);

   painter.setRenderHint((QPainter::SmoothPixmapTransform));

   painter.setRenderHint(QPainter::HighQualityAntialiasing);

   painter.translate(269,246);

   painter.save();

   painter.rotate(angle);

   painter.drawPixmap(-274,-123,164,248,QPixmap(":/Sport/Resources/MeterDisplay/Sport/MDSL/pointer.png"));

   painter.setOpacity(m_shadeOpacity);

   painter.drawPixmap(-264,-0,208,239,QPixmap(":/Sport/Resources/MeterDisplay/Sport/MDSL/pointershade.png"));

   painter.restore();

}

这样设置效果不是很理想:

改进版本

这个版本主要是吧指针和弧光分开,不过弧光效果还是没有控制好,目前也只能是这样了,除非得重新做一个弧光,不过我的美工能力有限,暂时无能为力。后面有美工牛逼症的小伙伴可以接着在优化一下。看下代码

voidMDS_Left::drawPonter(intangle)

{

 

   doublescale=1-qAbs(0.4*angle/120.0);

   QPainterpainter(ui->label_pointer);

   painter.setRenderHint((QPainter::SmoothPixmapTransform));

   painter.setRenderHint(QPainter::HighQualityAntialiasing);

   painter.translate(269,246);

   painter.save();

   painter.rotate(angle);

   painter.drawPixmap((-164-25),-138,90,280,QPixmap(":/Sport/Resources/MeterDisplay/Sport/MDSL/hu.png"));

   painter.drawPixmap((-164-110*scale),-22*scale,130*scale,44*scale,QPixmap(":/Sport/Resources/MeterDisplay/Sport/MDSL/pointer.png"));

   painter.setOpacity(m_shadeOpacity);

   painter.drawPixmap((-164-100*(scale*1.1)),-0,208*(scale*1.1),239,QPixmap(":/Sport/Resources/MeterDisplay/Sport/MDSL/pointershade.png"));

   painter.restore();

}

最后

今天就是大年二十八了,提前祝大家新年快乐。

说明:

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

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

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

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

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



相关文章
|
6天前
|
SQL 算法
LabVIEW开发机械手圆周插补轨迹控制
LabVIEW开发机械手圆周插补轨迹控制
10 0
|
6天前
|
JSON 网络协议 前端开发
【UR六轴机械臂源码】python脱离示教器控制UR机械臂实时采集机器人位姿(优傲机器人)
【UR六轴机械臂源码】python脱离示教器控制UR机械臂实时采集机器人位姿(优傲机器人)
HMI-34-【运动模式】实现运动模式的UI上电逻辑控制
今天这界面上没有实际的增加,仅仅是实把运动模式UI上电控制逻辑实现了一下,其实到这个模块的时候,就会发现之前在写舒适模式的时候的一些问题了,有好内容可以抽象出来了,不用每次都实现一遍了。不过现在还比较懒,还是先以实现为主,和面的内容放在优化里面。废话不多说,开始搞事情。不过为了吸你们开下去,现在把目前进度放在了。
HMI-33-【运动模式】补上油量表和水温表
上一篇,以为是做了一个收尾,写了灯光控制面板和底部的信息栏,但是,有位眼见的小伙伴`江山壹角`,直接不给我面子,说我的水温表和油量表不会动。截图位置,我记仇哈。
|
6月前
|
C++
HMI-28-【运动模式】给速度表添加数字显示
今天我要做的功能时给速度表添加数字显示。就是下图中左侧的`888`
HMI-28-【运动模式】给速度表添加数字显示
HMI-29-【运动模式】转速表实现及中心油耗仪表实现
今天我要搞得就是中心的这个表,指针的是转速表 中心显示的油耗表。
HMI-29-【运动模式】转速表实现及中心油耗仪表实现
HMI-30-【运动模式】仪表右侧模块开始编写
今天喝了点小茶水,来了点写代码的感觉,那么今天就尝试吧运动模式仪表右侧的模块写了,我的资源文件中,只有音乐,所以右侧模块还是先把框架搭好,仅实现音乐模块。
HMI-30-【运动模式】仪表右侧模块开始编写
HMI-35-【运动模式】实现速度表和转速表自检
今天咱们给速度表和转速表增加一个自检功能, 就是从小走大最大再回到最小。用到的和上篇一样,也是有一个自己写的定时器。
HMI-31-【运动模式】解决音乐模块图片显示问题
上一篇中,我们基本实现了音乐模块的布局显示,但是留了个小尾巴,就是图片显示,这个模块中,图片不是方正的,而是有透视的,但是呢,Qt的图像显示显示,我还没有研究那么深入,所以目前只能是像,但是肯定不是真真的透视。我是利用遮罩来实现的,其实还是平面的图片,仅仅是用了一个透视的图片模版来覆盖一下。
HMI-31-【运动模式】解决音乐模块图片显示问题
|
7月前
|
前端开发 芯片
【芯片前端】保持代码手感——不重叠序列检测
【芯片前端】保持代码手感——不重叠序列检测