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

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

[复制链接]
STMCU小助手 发布时间:2022-3-10 10:00
一、界面布局以及资源添加; ^1 y! c. _7 h+ J* |+ c& U
1、创建自定义控件
6 N& P3 v/ \; P: a

5 n- b) Z) X" G; j RYSNI@FP70254DY0WYGP~G9.png ' r1 A* n: V; T: [% J
4 b. H( r0 D' y# u# V) A0 H& P
2、创建主screen界面( }8 L/ _' m2 w" T
指定Sscrcroll List的样式为自定义控件
4 S4 y0 n/ O# H; F9 k( a" N
8 P/ Y$ b' U0 ?9 k8 `" v' M 68$G5`)95S}EG{GI8PBJ8LR.png 3 I/ H/ _. b6 x) W/ L/ B( V# t

' I5 l. P+ j# U8 ~备注: 为了方便演示,本工程的背景图直接用的touchgfx界面里自带的图片。
$ {9 a, l# f+ G
$ g1 Y; z4 a3 x% Z2 T' F5 J+ ~二、功能实现
( v5 U3 b( O' h/ ]. p3 y1、自定义控件设置图片方法实现
$ R8 B/ ?, d; h( J5 |  n0 i
  1.         //.h文件中声明如下
    ; X, r. ?5 U8 ~1 Q! N7 o: h
  2.         void setBitmap(int16_t index);
复制代码

; k2 M( q/ w: o. z2 A `%4V[ES7RV}92VK06ZIDO`C.png
& C8 ]" S+ P; G  m" h2 U: Q) _6 I6 w  [: T3 a, X
2、实现Scroll List的虚函数2 ]& B% }! K% S. v9 F$ ?
  1. 下图是Scroll List的虚函数,每次更新item时会调用
复制代码

9 s1 N% ^; f# o2 Z+ [+ a ZN4TCM$GMY%BN8{_8UT~3M9.png
- D; V% a$ |6 d. n- _+ h* w, e
# j; V' @! w( v" U  @+ h8 N3、主界面的构造函数中添加界面初始化代码* y' S. I7 i4 `' d+ X
  1. //别忘记增加图片头文件' J5 f9 c6 I6 c( M. d
  2. #include "BitmapDatabase.hpp"
      i. F5 q8 Q/ e
  3. //采用参数列表初始化方式# G# f: m8 h1 }/ G3 R
  4. Screen2View::Screen2View():callback(this,&Screen2View::callbackHandler)! m- E4 s/ `, l6 w3 o+ o+ w
  5. {; Y7 p; w3 I1 F8 ~6 N$ ?
  6.         scrollList1.setItemSelectedCallback(callback);
    ' \  `  t. ^7 Q* b# Y# h2 }
  7.         scrollList1.animateToItem(scrollList1.getNumberOfItems() / 2);# `, A, N5 w( _( P" j% K
  8. }
复制代码
: o2 m- F6 W0 g5 }1 N
4、回调函数的实现
: q. R8 k  [$ U' K/ M4 r! \* z; T
  1. 回调函数的声明
复制代码
7 W! u# j" @; ?

, f. G  V0 ^9 X( l# P0 j6 d- Z" R, c8 y2 w2 V' ^/ W7 D
  1. 回调函数的实现
复制代码
  1. void Screen2View::callbackHandler(int16_t index)
    + h8 I9 p( b) m" A
  2. {
    * Y- _4 h5 e( C5 B7 V! w. V* d9 D
  3.         box1.invalidate();
    7 I7 [! c; f+ U! [
  4.         switch (index)
    : j+ D) F  A1 H8 N! _1 w
  5.         {
    " h3 D( o3 B  O0 s
  6.         case 0:5 N) T2 z+ R7 C
  7.                 image1.setBitmap(Bitmap(BITMAP_DARK_ICONS_CALENDAR_48_ID));
    3 s7 w5 y' s3 N* y' H
  8.         break;
    * |6 @$ H* U$ u- y# e0 S
  9.         case 1:
    - A: F& s1 p% t8 o- N/ m4 P
  10.                 image1.setBitmap(Bitmap(BITMAP_DARK_ICONS_DOCUMENT_48_ID));
      Q$ Q- A1 R# d0 M! Z, C
  11.         break;& t* s' S3 L3 R
  12.         case 2:2 d! P+ s" \0 o
  13.                 image1.setBitmap(Bitmap(BITMAP_DARK_ICONS_FOLDER_48_ID));3 f: p5 r: S* j8 y# c% [0 l- c
  14.         break;
    : a, ^4 c9 g7 k! |1 g% v
  15.         case 3:
    8 l( }1 V: W# H
  16.                 image1.setBitmap(Bitmap(BITMAP_DARK_ICONS_INBOX_48_ID));- s4 X$ o( c$ Z/ Z
  17.         break;) j- T/ J: h/ U
  18.         case 4:
    % M8 ^# O1 ^* B" w  @
  19.                 image1.setBitmap(Bitmap(BITMAP_DARK_ICONS_MOVIE_48_ID)); ( ?& b1 n" ]1 O1 b# a8 R- |! u! _( X
  20.         break;
    ( }; R& W5 j( i$ O0 Z
  21.         default: break;
    2 B' f+ Z; i7 u- C
  22.         }
    9 x% E; A" M: z$ V
  23.         image1.invalidate();! f$ n0 A/ Z# A8 [6 x# d0 e
  24. }$ {2 Y4 C5 R2 p# }, d* Q

  25. - [' v  I8 \; M
复制代码
6 ?" i& V) ^1 l6 p' r2 z  [% k
收藏 评论0 发布时间:2022-3-10 10:00

举报

0个回答

所属标签

相似技术帖

官网相关资源

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