[应用相关] 使用TouchGFX开发STM32界面应用之入门篇(四)-- 定制控件-1

[复制链接]
1075|26
 楼主| comparison 发表于 2020-6-23 19:02 | 显示全部楼层 |阅读模式
【海东青电子原创**,转载请注明出处:https://www.jianshu.com/p/7c9a0533c600】
(实例代码下载地址:https://github.com/haidongqing/tgfx-customscroll)
如果你看过这个TouchGFX入门系列的前三篇**(1,2,3),是否有这种印象:TouchGFX似乎也不过如此嘛,图形界面很一般呀。其实,我们只是看到了冰山的一角,TouchGFX功能非常强大,必然十分复杂,实际上它是能做出非常酷炫的界面的,今天介绍一个用TouchGFX制作的“滚轮”控件,谈不上炫酷,只是稍有“姿色”,但代表了TouchGFX对用户定制控件的强大支持能力。同时,也以这个定制的控件作为本次TouchGFX入门篇系列的结束。



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

 楼主| comparison 发表于 2020-6-23 19:04 | 显示全部楼层
本讲中,我们将制作一个可以上下滑动的菜单条,它可以像老式拨盘电话机一样沿着圆弧方向滑动:
617215ef1e1a3833f8.png
 楼主| comparison 发表于 2020-6-23 19:04 | 显示全部楼层
拨盘电话?暴露年龄了,长得像这个样子的东东:
960105ef1e1b6ca356.png
 楼主| comparison 发表于 2020-6-23 19:05 | 显示全部楼层
项目中要用到一些图标(图片),下载地址:https://pan.baidu.com/s/1658eTb2YThyvbGCcmRIc9Q,提取码:kkfh,文件名:《touchgfx入门4_图片.zip》。

 楼主| comparison 发表于 2020-6-23 19:05 | 显示全部楼层
在 TouchGFX Designer 中,新建一个项目,选择 STM32F769I-DISCO 板子、空模板。将上面的“touchgfx入门4_图片.zip”文件解压到TouchGFX生成项目的images文件夹中:

160775ef1e1facfdd4.png
 楼主| comparison 发表于 2020-6-23 19:06 | 显示全部楼层
在Designer中会自动显示加入的图片:
263355ef1e21b1312e.png
 楼主| comparison 发表于 2020-6-23 19:07 | 显示全部楼层
然后,点击下图左上角的 + 号,创建用户定制的控件:
968625ef1e25f86e01.png
 楼主| comparison 发表于 2020-6-23 19:08 | 显示全部楼层
点击 icon00.png 那个电话图标,并修改属性如下图:
431745ef1e2805f88e.png
 楼主| comparison 发表于 2020-6-23 19:08 | 显示全部楼层
再添加一个TextArea控件:
874965ef1e2b5ae937.png
 楼主| comparison 发表于 2020-6-23 19:09 | 显示全部楼层
并且如下图所示修改通配符:
86595ef1e2d0d669e.png
 楼主| comparison 发表于 2020-6-23 19:09 | 显示全部楼层
修改20号字体的通配符数字范围:
312565ef1e2f4406ac.png
 楼主| comparison 发表于 2020-6-23 19:10 | 显示全部楼层
Ctrl+S 保存,然后回到Screens面板,在控件栏的最下面可以看到用户刚刚创建的定制控件 MenuElement:
43425ef1e3090d81a.png
 楼主| comparison 发表于 2020-6-23 19:10 | 显示全部楼层
先试试自己创建的控件好不好用。为了用全黑色背景衬托控件中的文字,先放置一个全黑的 Box With Border 控件,属性设置见上图。
 楼主| comparison 发表于 2020-6-23 19:11 | 显示全部楼层
然后,鼠标点击 MenuElement 控件,控件显示如下(有点小酷的样子了吧^_^):
370645ef1e349779c6.png
 楼主| comparison 发表于 2020-6-23 19:12 | 显示全部楼层
下面开始使用这个控件“组合”出一个滑动菜单界面,核心是使用TouchGFX自带的 Scroll Wheel 控件。先删除掉上图中为了测试放置的定制控件。为了美化界面,先放一个背景图:
687385ef1e375d6da4.png
 楼主| comparison 发表于 2020-6-23 19:12 | 显示全部楼层
然后点击 Scroll Wheel 控件、并设置属性:
748495ef1e3914cfa8.png
 楼主| comparison 发表于 2020-6-23 19:13 | 显示全部楼层
关键一步:在 Item Template下拉框中,选择我们创建的 MenuElement、并修改2个参数,如下图:
657135ef1e3b528050.png
 楼主| comparison 发表于 2020-6-23 19:13 | 显示全部楼层
然后,再“盖上”一个前景图 overlay.png ,这个界面有点儿酷了吧:
229725ef1e3d41db76.png
 楼主| comparison 发表于 2020-6-23 19:14 | 显示全部楼层
至此,界面工作完成,先用VC模拟器运行一下:
869685ef1e3f59a2dd.png
用鼠标上下拖动界面,菜单条会跟着滑动。
 楼主| comparison 发表于 2020-6-23 19:15 | 显示全部楼层
有2个问题需要解决:1)界面上的20个 menu item 图标、文字都是相同的,实际应用中这些肯定都是不同的;2)上下滑动,menu items 是垂直运动,我们希望他们沿着圆弧运动。

这就要靠C++代码来实现了,请见下一节。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

25

主题

417

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部