打印
[应用相关]

使用TouchGFX开发STM32界面应用之入门篇(四)-- 定制控件-2

[复制链接]
1840|19
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
海东青电子原创**,转载请注明出处:https://www.jianshu.com/p/d7a0d4b2ba63】
(实例代码下载地址:https://github.com/haidongqing/tgfx-customscroll)
上一节完成了界面设计工作,遗留了2个问题:修改menu items的图标及文字、并且沿圆弧滑动。在VC中打开项目工程,需要针对用户定制的控件 MenuElement 添加代码实现修改图标等功能。描述MenuElement控件的是 MenuElement.hpp 和 MenuElement.cpp 这2个文件。





作者:海东青电子
链接:https://www.jianshu.com/p/d7a0d4b2ba63
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

使用特权

评论回复
沙发
comparison|  楼主 | 2020-6-23 19:17 | 只看该作者
当滑动ScrollWhell控件时,TouchGFX框架会在View中调用一个虚函数:scrollWheelUpdateItem(),在这个函数中加入代码设置每个menu item的图标等即可。

使用特权

评论回复
板凳
comparison|  楼主 | 2020-6-23 19:18 | 只看该作者
为了方便,在MenuElement.hpp的类中创建一个名为 setNumber() 的函数完成修改图标,然后在scrollWheelUpdateItem() 中调用  setNumber() :

使用特权

评论回复
地板
comparison|  楼主 | 2020-6-23 19:18 | 只看该作者
其中的传入参数 no 是menu item 的下标编号(自动从0编号到19),通过 itoa() 转换成字符、附加在每一个item的文字串之后。因为我们只准备了7个图标,no % 7 就是轮换着用的意思了。

使用特权

评论回复
5
comparison|  楼主 | 2020-6-23 19:20 | 只看该作者
然后,在scrollWheelUpdateItem() 中调用  setNumber() :

使用特权

评论回复
6
comparison|  楼主 | 2020-6-23 19:20 | 只看该作者
这里的重点是参数 itemIndex ,它表示当前需要update(就是显示在视野里的)的item的index,setNumber() 根据itemIndex的值动态地更改item的图标和文字。

使用特权

评论回复
7
comparison|  楼主 | 2020-6-23 19:21 | 只看该作者
VC模拟器运行结果如下:

使用特权

评论回复
8
comparison|  楼主 | 2020-6-23 19:22 | 只看该作者
还剩最后一步:让items沿着圆弧方向滑动!这就需要动态地修改item的图标、文字的水平位置坐标。当item滑动时,垂直位置会改变,框架会调用一个叫做 setY() 的函数,在其中修改item的水平坐标:先利用勾股定理计算出水平坐标x,再调用一个用户函数 offset(x) 来重新设置item的x坐标:

使用特权

评论回复
9
comparison|  楼主 | 2020-6-23 19:23 | 只看该作者
模拟器运行结果:

使用特权

评论回复
10
comparison|  楼主 | 2020-6-23 19:23 | 只看该作者
最后,在IAR中编译生成目标文件(如何正确配置IAR来下载TouchGFX目标文件,戳这里https://www.jianshu.com/p/c317a54b0e32),下载到目标板上运行:

使用特权

评论回复
11
comparison|  楼主 | 2020-6-23 19:24 | 只看该作者
沿着圆弧方向滑动手指,想象一下在拨盘电话机上拨动的感觉吧(这有点扯了,^_^)。

使用特权

评论回复
12
comparison|  楼主 | 2020-6-23 19:25 | 只看该作者
《使用TouchGFX开发STM32界面应用之入门篇》到此告一段落了,感谢在这些日子里大家的陪伴。下一篇,我们将进入开发TouchGFX的正题:如何在STM32CUBEMX中创建TouchGFX工程。

使用特权

评论回复
13
comparison|  楼主 | 2020-6-23 19:25 | 只看该作者

作者:海东青电子
链接:https://www.jianshu.com/p/d7a0d4b2ba63
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

使用特权

评论回复
14
xietingfeng| | 2020-7-2 22:19 | 只看该作者
TouchGFX怎么样呢     

使用特权

评论回复
15
houjiakai| | 2020-7-3 22:13 | 只看该作者
TouchGFX开发STM32界面收费吗   

使用特权

评论回复
16
keaibukelian| | 2020-7-10 14:20 | 只看该作者
非常感谢楼主分享

使用特权

评论回复
17
labasi| | 2020-7-10 14:23 | 只看该作者
非常不错的资料

使用特权

评论回复
18
paotangsan| | 2020-7-10 14:24 | 只看该作者
这个控件是免费的吗

使用特权

评论回复
19
renzheshengui| | 2020-7-10 14:24 | 只看该作者
真的很漂亮

使用特权

评论回复
20
wakayi| | 2020-7-10 14:24 | 只看该作者
心向往之啊

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

25

主题

417

帖子

0

粉丝