你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

【STM32H750-DK 车辆仪表】5.油表

[复制链接]
jundao721 发布时间:2025-12-9 20:46
8 L1 w# @# K/ r. p% F
       UI界面上还得有个油表,大部分都是机械指针。这里暂时不使用机械指针,还是使用circleProgress 和 TextArea控件。
% N+ L# Z2 W, V1 F       计划实现的功能就是手滑动circleProgress实现加油,TextArea数字也跟着直观指示。
$ M3 I/ X. E) R2 J. c4 Z1 Z+ I       两个控件的值范围是0-100L,后来想想,一般油箱就50L,不一般的就比较大了。: y4 Z7 n# i8 K" H* \
       书归正传,这里实现只需要在view里实现即可。
: t) [. A# c1 o. a, u       定义界面如图1所示:9 y2 R" {4 f% @: V5 [
5-1.png 9 T3 j# Q) A. E6 ~( X' r4 _! Q7 P
图1
. N5 T0 t  L; U: H2 i6 X+ q' R$ p# c      在View.cpp里实现功能,函数实现如下所示:- H0 P# d8 t9 ]+ s0 o8 Y
  1. int x = evt.getNewX();    // 手指当前位置 X
    ' y9 f7 e7 j6 d
  2.   N4 ?2 z% Q5 m7 y* x& J5 ~2 @7 f
  3.     int minX = circleProgress2.getX();
    + y& A" Q) [: `% d; r9 c4 e
  4.     int maxX = minX + circleProgress2.getWidth();
    ) i# c, k' n% o
  5. % P  e) D3 F! l# a) h/ U4 u" \
  6.     int pos = x - minX;( W2 Z. ^4 V9 ]; t1 r( i: g5 a5 e" g* j
  7.     if (pos < 0) pos = 0;
    ( ]9 b. ]. f' f5 d. ^
  8.     if (pos > (maxX - minX)) pos = (maxX - minX);
    : r% {* d0 V/ F/ ~( q  B( D! |

  9. + M0 v! [9 {/ ]' U3 B
  10.     int value = pos * 100 / (maxX - minX);  // 映射到 0~100/ O6 P; V" D& Z

  11. + H5 c1 v) w  J/ Q, c6 Y" E
  12.     // 更新 CircleProgress
    - z; X: _2 y2 M: j& j. N8 S: [
  13.     circleProgress2.setValue(value);8 W! K3 {' ]1 t* o  @# u( R

  14. 8 O/ e) f$ r7 }( t5 @1 v
  15.     // 更新文本3 u5 m( M" e4 \* {9 I7 W, L
  16.     Unicode::snprintf(textArea4Buffer, TEXTAREA1_SIZE, "%d", value);" u1 O! Z0 q0 N
  17.     textArea4.invalidate();
复制代码
6 n4 G) J( O  ^, ^' K' f
8 O, ]+ s" C$ T$ M5 ]' g

. D1 V. V5 ~7 ^0 I# @6 H( D: O
9 K+ u2 k  I( x6 h  {. c
      实际展示效果如图2所示:+ b) q* P5 p, ?/ k/ s
5-2.gif 1 u) e6 G, h  k: i: b+ K
图2
: w5 L: t; H0 |/ u% j
赞 收藏 评论1 发布时间:2025-12-9 20:46

举报

1个回答
STMCU-管管 回答时间:2025-12-10 09:26:20

不错不错

所属标签

相似技术帖

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
人形机器人运动控制、感知与智能配电
半导体创新技术与应用方向
EE架构与软件定义汽车
12V/48V 汽车智能配电(SPD)
区域控制单元(ZCU)与分区架构
关注我们
st-img 微信公众号
st-img 手机版