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

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

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

前言

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

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


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

1、创建自定义控件


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


2、创建主screen界面

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


ZNP338%M91RLYEDZZ$DO}GG.png


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


二、功能实现

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>
复制代码

XULGYM7MJTA12@0X[%UA017.png


2、实现Scroll List的虚函数

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


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


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>
复制代码

4、回调函数的实现

回调函数的声明


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


回调函数的实现

  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>
复制代码





收藏 评论0 发布时间:2022-3-10 21:51

举报

0个回答

所属标签

相似技术帖

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版