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

【经验分享】stm32基于TouchGFX的GUI开发(六):(Scroll List)滚动列表的使用

[复制链接]
STMCU小助手 发布时间:2022-3-10 10:00
一、界面布局以及资源添加
  \! H& _0 C9 }! C* c2 j1、创建自定义控件

  Y. d5 g! g  ^5 V! ~2 N: z+ u- d* t
RYSNI@FP70254DY0WYGP~G9.png 9 A* `' b- M! ~; g

" u- o, P( e, z! u) i2、创建主screen界面
+ t7 ?, r4 v( \$ [6 ?7 T9 Z指定Sscrcroll List的样式为自定义控件* J. y% [  \$ d+ w9 p# c0 R) L

# A: [: A/ n2 V' |6 Q 68$G5`)95S}EG{GI8PBJ8LR.png
5 C! M) M$ N' T
- a' Y$ I, _; I& a& U备注: 为了方便演示,本工程的背景图直接用的touchgfx界面里自带的图片。( B4 `9 \  u/ Q. L/ A8 ~# t  j, s2 j

8 S' R4 J' j, \7 T二、功能实现
( _% B7 P- \+ x4 G5 V- H0 f3 w1、自定义控件设置图片方法实现

% i* q0 N( x8 n* |1 o9 @
  1.         //.h文件中声明如下
    ! r7 W# v. _9 [9 ]2 S7 O3 a; M
  2.         void setBitmap(int16_t index);
复制代码

! J& l( R9 W8 |9 e$ m$ _ `%4V[ES7RV}92VK06ZIDO`C.png
" N  q) z, r& H# ]9 R1 U% l0 L  T; B# s7 ?" ]6 V
2、实现Scroll List的虚函数0 H& p$ ]1 l/ i, c
  1. 下图是Scroll List的虚函数,每次更新item时会调用
复制代码

$ A0 _4 ]9 I! o ZN4TCM$GMY%BN8{_8UT~3M9.png 5 k! d. \  p1 S* p9 F( M+ {

) {7 J( ~& K# J  g% T1 W* K/ I; [3、主界面的构造函数中添加界面初始化代码& t1 O3 h  o+ j- a% U7 v9 M
  1. //别忘记增加图片头文件8 z9 f& K9 }8 w$ |
  2. #include "BitmapDatabase.hpp". @) ^2 G5 [# O$ w# u8 ^3 R7 w
  3. //采用参数列表初始化方式: |, C3 v+ L( f# ]" W/ h5 w) ~& a
  4. Screen2View::Screen2View():callback(this,&Screen2View::callbackHandler)
    6 _6 v# H1 i: ^/ \( k5 Z0 |5 o
  5. {& Z, d, X+ I" y
  6.         scrollList1.setItemSelectedCallback(callback);
    % b% q7 D  M- i9 x" X+ K$ ?$ \  d
  7.         scrollList1.animateToItem(scrollList1.getNumberOfItems() / 2);
    . t0 n9 S9 e4 o+ x1 p
  8. }
复制代码

; O4 P3 H3 ?  S1 o; Q* s4、回调函数的实现
% H7 O1 d$ z" P$ V. A0 W7 Y
  1. 回调函数的声明
复制代码
! S; q( K# G# |
- V2 @1 [6 C1 L4 ~
6 Z2 N6 s! _, h6 E1 O7 b( e
  1. 回调函数的实现
复制代码
  1. void Screen2View::callbackHandler(int16_t index)
    ) o+ I: g8 y5 J# k8 s7 l( j; _
  2. {
    * `- L" n, V# ~4 l5 {
  3.         box1.invalidate();# @* k( C: q8 a- n! G
  4.         switch (index)
      H5 U* H# ^  `6 L6 R$ X
  5.         {0 E- g* U, U) i& Y/ Z( y3 D
  6.         case 0:  g1 A: v; U# \
  7.                 image1.setBitmap(Bitmap(BITMAP_DARK_ICONS_CALENDAR_48_ID));
    . }0 m4 Q& Y, J) D8 I! e1 g
  8.         break;
    . i9 m( i% Z% d
  9.         case 1:
    ' d6 A. z# \$ Z6 U
  10.                 image1.setBitmap(Bitmap(BITMAP_DARK_ICONS_DOCUMENT_48_ID));
    2 R0 E9 T5 h$ F2 e
  11.         break;0 R2 m" y0 F$ x+ [) U/ C( S4 w
  12.         case 2:9 I3 ^- d0 X3 w0 c
  13.                 image1.setBitmap(Bitmap(BITMAP_DARK_ICONS_FOLDER_48_ID));0 l, ~; }% w5 M% f
  14.         break;# k# _8 F/ s1 A, v5 u7 ~+ j, @
  15.         case 3:
    + y* O& c& s  {' p
  16.                 image1.setBitmap(Bitmap(BITMAP_DARK_ICONS_INBOX_48_ID));
    - i- `: c5 w6 |: o3 v
  17.         break;" }" e6 L* l! n
  18.         case 4:
    3 N0 H6 W4 h" f& W- C$ l  Q
  19.                 image1.setBitmap(Bitmap(BITMAP_DARK_ICONS_MOVIE_48_ID)); , b. J4 V3 r3 i5 S3 v
  20.         break;' ]. _8 ?; k$ s7 ?( q  D# N- a
  21.         default: break;, P! m& u1 F1 O6 o
  22.         }5 h1 z+ t6 f/ w9 g3 g* l% d
  23.         image1.invalidate();
    ( a8 X6 P( ?0 a! t( o- i
  24. }) N( `7 o2 j/ }: _

  25. 2 H6 H; @& l# F+ N& W4 F
复制代码

8 K3 U9 S2 E; D: k+ {! h" ^2 n& o
赞 收藏 评论0 发布时间:2022-3-10 10:00

举报

0个回答

所属标签

相似技术帖

官网相关资源

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