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

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

[复制链接]
STMCU小助手 发布时间:2022-3-10 21:51
stm32基于TouchGFX的GUI开发(六):(Scroll List)滚动列表的使用最终效果图:) {9 D2 v) J, O( _0 s

前言

本章我们将介绍Scroll List控件的使用。

提示:以下是本篇文章正文内容,下面案例可供参考


  d% m9 I2 }7 m( Y' d

一、界面布局以及资源添加

1、创建自定义控件

, U4 z3 G6 P7 Z8 a# {1 c

[5])EC~IXV4L)DRC]FCPB42.png

+ I1 l8 |9 @% t6 h

2、创建主screen界面

指定Sscrcroll List的样式为自定义控件


& [- u* ~! D. A

ZNP338%M91RLYEDZZ$DO}GG.png


8 P, x# K2 z5 Q: K4 \$ n

备注: 为了方便演示,本工程的背景图直接用的touchgfx界面里自带的图片。

4 o) X6 X4 H" W' b( I) u

二、功能实现

1、自定义控件设置图片方法实现

  1. <p style="line-height: 26px;"><font face="-apple-system, SF UI Text, Arial, PingFang SC, Hiragino Sans GB, Microsoft YaHei, WenQuanYi Micro Hei, sans-serif"><font color="#4d4d4d">        //.h文件中声明如下</font></font></p><p style="line-height: 26px;"><font face="-apple-system, SF UI Text, Arial, PingFang SC, Hiragino Sans GB, Microsoft YaHei, WenQuanYi Micro Hei, sans-serif"><font color="#4d4d4d">        void setBitmap(int16_t index);</font></font></p>
复制代码
* j1 H7 R  j3 F. i0 C/ _

XULGYM7MJTA12@0X[%UA017.png

! |& e# K" i+ k

2、实现Scroll List的虚函数

下图是Scroll List的虚函数,每次更新item时会调用


! s$ F7 Y; \; W3 V5 V. n

`[OQ(HZ@US7TIF69[VB3(D1.png


1 h  s' ?( M0 U

3、主界面的构造函数中添加界面初始化代码

  1. <p style="line-height: 26px;"><font face="-apple-system, SF UI Text, Arial, PingFang SC, Hiragino Sans GB, Microsoft YaHei, WenQuanYi Micro Hei, sans-serif"><font color="#4d4d4d">//别忘记增加图片头文件</font></font></p><p style="line-height: 26px;"><font face="-apple-system, SF UI Text, Arial, PingFang SC, Hiragino Sans GB, Microsoft YaHei, WenQuanYi Micro Hei, sans-serif"><font color="#4d4d4d">#include "BitmapDatabase.hpp"</font></font></p><p style="line-height: 26px;"><font face="-apple-system, SF UI Text, Arial, PingFang SC, Hiragino Sans GB, Microsoft YaHei, WenQuanYi Micro Hei, sans-serif"><font color="#4d4d4d">//采用参数列表初始化方式</font></font></p><p style="line-height: 26px;"><font face="-apple-system, SF UI Text, Arial, PingFang SC, Hiragino Sans GB, Microsoft YaHei, WenQuanYi Micro Hei, sans-serif"><font color="#4d4d4d">Screen2View::Screen2View():callback(this,&Screen2View::callbackHandler)</font></font></p><p style="line-height: 26px;"><font face="-apple-system, SF UI Text, Arial, PingFang SC, Hiragino Sans GB, Microsoft YaHei, WenQuanYi Micro Hei, sans-serif"><font color="#4d4d4d">{</font></font></p><p style="line-height: 26px;"><font face="-apple-system, SF UI Text, Arial, PingFang SC, Hiragino Sans GB, Microsoft YaHei, WenQuanYi Micro Hei, sans-serif"><font color="#4d4d4d">        scrollList1.setItemSelectedCallback(callback);</font></font></p><p style="line-height: 26px;"><font face="-apple-system, SF UI Text, Arial, PingFang SC, Hiragino Sans GB, Microsoft YaHei, WenQuanYi Micro Hei, sans-serif"><font color="#4d4d4d">        scrollList1.animateToItem(scrollList1.getNumberOfItems() / 2);</font></font></p><p style="line-height: 26px;"><font face="-apple-system, SF UI Text, Arial, PingFang SC, Hiragino Sans GB, Microsoft YaHei, WenQuanYi Micro Hei, sans-serif"><font color="#4d4d4d">}</font></font></p>
复制代码
: c* o1 ~3 l# S! K) V

4、回调函数的实现

回调函数的声明


* @+ M4 J6 S1 H- A' a

}JZ3AN}Q}J]ZTRQJR0$)_)H.png


3 {2 k4 m" t8 {% y: n3 d, D

回调函数的实现

  1. <p style="line-height: 26px;"><font face="-apple-system, SF UI Text, Arial, PingFang SC, Hiragino Sans GB, Microsoft YaHei, WenQuanYi Micro Hei, sans-serif"><font color="#4d4d4d">void Screen2View::callbackHandler(int16_t index)</font></font></p><p style="line-height: 26px;"><font face="-apple-system, SF UI Text, Arial, PingFang SC, Hiragino Sans GB, Microsoft YaHei, WenQuanYi Micro Hei, sans-serif"><font color="#4d4d4d">{</font></font></p><p style="line-height: 26px;"><font face="-apple-system, SF UI Text, Arial, PingFang SC, Hiragino Sans GB, Microsoft YaHei, WenQuanYi Micro Hei, sans-serif"><font color="#4d4d4d">        box1.invalidate();</font></font></p><p style="line-height: 26px;"><font face="-apple-system, SF UI Text, Arial, PingFang SC, Hiragino Sans GB, Microsoft YaHei, WenQuanYi Micro Hei, sans-serif"><font color="#4d4d4d">        switch (index)</font></font></p><p style="line-height: 26px;"><font face="-apple-system, SF UI Text, Arial, PingFang SC, Hiragino Sans GB, Microsoft YaHei, WenQuanYi Micro Hei, sans-serif"><font color="#4d4d4d">        {</font></font></p><p style="line-height: 26px;"><font face="-apple-system, SF UI Text, Arial, PingFang SC, Hiragino Sans GB, Microsoft YaHei, WenQuanYi Micro Hei, sans-serif"><font color="#4d4d4d">        case 0:</font></font></p><p style="line-height: 26px;"><font face="-apple-system, SF UI Text, Arial, PingFang SC, Hiragino Sans GB, Microsoft YaHei, WenQuanYi Micro Hei, sans-serif"><font color="#4d4d4d">                image1.setBitmap(Bitmap(BITMAP_DARK_ICONS_CALENDAR_48_ID));</font></font></p><p style="line-height: 26px;"><font face="-apple-system, SF UI Text, Arial, PingFang SC, Hiragino Sans GB, Microsoft YaHei, WenQuanYi Micro Hei, sans-serif"><font color="#4d4d4d">        break;</font></font></p><p style="line-height: 26px;"><font face="-apple-system, SF UI Text, Arial, PingFang SC, Hiragino Sans GB, Microsoft YaHei, WenQuanYi Micro Hei, sans-serif"><font color="#4d4d4d">        case 1:</font></font></p><p style="line-height: 26px;"><font face="-apple-system, SF UI Text, Arial, PingFang SC, Hiragino Sans GB, Microsoft YaHei, WenQuanYi Micro Hei, sans-serif"><font color="#4d4d4d">                image1.setBitmap(Bitmap(BITMAP_DARK_ICONS_DOCUMENT_48_ID));</font></font></p><p style="line-height: 26px;"><font face="-apple-system, SF UI Text, Arial, PingFang SC, Hiragino Sans GB, Microsoft YaHei, WenQuanYi Micro Hei, sans-serif"><font color="#4d4d4d">        break;</font></font></p><p style="line-height: 26px;"><font face="-apple-system, SF UI Text, Arial, PingFang SC, Hiragino Sans GB, Microsoft YaHei, WenQuanYi Micro Hei, sans-serif"><font color="#4d4d4d">        case 2:</font></font></p><p style="line-height: 26px;"><font face="-apple-system, SF UI Text, Arial, PingFang SC, Hiragino Sans GB, Microsoft YaHei, WenQuanYi Micro Hei, sans-serif"><font color="#4d4d4d">                image1.setBitmap(Bitmap(BITMAP_DARK_ICONS_FOLDER_48_ID));</font></font></p><p style="line-height: 26px;"><font face="-apple-system, SF UI Text, Arial, PingFang SC, Hiragino Sans GB, Microsoft YaHei, WenQuanYi Micro Hei, sans-serif"><font color="#4d4d4d">        break;</font></font></p><p style="line-height: 26px;"><font face="-apple-system, SF UI Text, Arial, PingFang SC, Hiragino Sans GB, Microsoft YaHei, WenQuanYi Micro Hei, sans-serif"><font color="#4d4d4d">        case 3:</font></font></p><p style="line-height: 26px;"><font face="-apple-system, SF UI Text, Arial, PingFang SC, Hiragino Sans GB, Microsoft YaHei, WenQuanYi Micro Hei, sans-serif"><font color="#4d4d4d">                image1.setBitmap(Bitmap(BITMAP_DARK_ICONS_INBOX_48_ID));</font></font></p><p style="line-height: 26px;"><font face="-apple-system, SF UI Text, Arial, PingFang SC, Hiragino Sans GB, Microsoft YaHei, WenQuanYi Micro Hei, sans-serif"><font color="#4d4d4d">        break;</font></font></p><p style="line-height: 26px;"><font face="-apple-system, SF UI Text, Arial, PingFang SC, Hiragino Sans GB, Microsoft YaHei, WenQuanYi Micro Hei, sans-serif"><font color="#4d4d4d">        case 4:</font></font></p><p style="line-height: 26px;"><font face="-apple-system, SF UI Text, Arial, PingFang SC, Hiragino Sans GB, Microsoft YaHei, WenQuanYi Micro Hei, sans-serif"><font color="#4d4d4d">                image1.setBitmap(Bitmap(BITMAP_DARK_ICONS_MOVIE_48_ID)); </font></font></p><p style="line-height: 26px;"><font face="-apple-system, SF UI Text, Arial, PingFang SC, Hiragino Sans GB, Microsoft YaHei, WenQuanYi Micro Hei, sans-serif"><font color="#4d4d4d">        break;</font></font></p><p style="line-height: 26px;"><font face="-apple-system, SF UI Text, Arial, PingFang SC, Hiragino Sans GB, Microsoft YaHei, WenQuanYi Micro Hei, sans-serif"><font color="#4d4d4d">        default: break;</font></font></p><p style="line-height: 26px;"><font face="-apple-system, SF UI Text, Arial, PingFang SC, Hiragino Sans GB, Microsoft YaHei, WenQuanYi Micro Hei, sans-serif"><font color="#4d4d4d">        }</font></font></p><p style="line-height: 26px;"><font face="-apple-system, SF UI Text, Arial, PingFang SC, Hiragino Sans GB, Microsoft YaHei, WenQuanYi Micro Hei, sans-serif"><font color="#4d4d4d">        image1.invalidate();</font></font></p><p style="line-height: 26px;"><font face="-apple-system, SF UI Text, Arial, PingFang SC, Hiragino Sans GB, Microsoft YaHei, WenQuanYi Micro Hei, sans-serif"><font color="#4d4d4d">}</font></font></p>
复制代码

  g0 L- a; w1 M  N& E, ~
4 |6 B. D9 y) P6 _% F0 X" u% S; ?& M5 F; W9 W  g. n
: @6 D6 O# z2 V5 Q' n2 q! z% U

5 N$ L. K* l# M+ }" x# W+ @
赞 收藏 评论0 发布时间:2022-3-10 21:51

举报

0个回答

所属标签

相似技术帖

官网相关资源

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