我就是菜啊!
使用touchgfx时,可以通过touchgfx designer来设定按钮点击事件来切换Screen;但有时需要在一定条件满足后切换到不同的Screen时,就需要用户自定义事件来切换Screen啦!实现的方法有两种,或者还有其他我不知道的。第一种就是自己写切换Screen的事件函数,这部分可以仿照按钮点击事件来切换Screen来写;第二种呢,就是借助Touchgfx designer来帮助我们生成屏幕跳转的方法,我们只需在需要的地方调用该方法即可。下面我简单的介绍一下这两种方法:
项目运行效果:
最终的运行效果会是:开机上电,进入界面Screen1,等待2S后,界面切换至Screen2,;在界面screen2中等待2S,然后切换到Screen1,依次往复循环。
一、借助touchgfx designer生成跳转界面的Function
打开touchgfx designer ,创建两个界面,Screen1和Screen2.如下图所示:
为了切换界面时的效果明显,可分别在Screen中加入一个box,并将box的背景色设置为不同的颜色,便于区分。
第二步:为每个Screen配置事件,事件触发类型不用选择,动作选择change Screen,切换到的页面,选择另一个页面,切换效果以及切换路径,可以按照自己的实际需要进行调整。具体操作如下图所示:
screen1事件配置:
screen2事件配置:
然后,运行程序,现在还没有任何的效果(毕竟我们还没有添加自己定义切换页面的触发条件),然后点击生成代码。用VS打开这个项目工程。
自定义切换界面的触发条件:
在Screen1.hpp文件中声明handleTickEvent()事件,也就是定时器事件;声明一个count变量用来计数,具体代码如下:
在Screen1.cpp文件中,初始化计数器变量count以及实现handleTickEvent()方法 ,具体代码如下:
重点分析gotoScreen2ScreenSlideTransitionEast():
其中Screen2为跳转目的页面的页面名称,Slide、East分别是方式以及路径,
同理,在Screen2.hpp文件中声明计数器变量以及定时器事件,并且在Screen2.cpp文件中初始化计数器变量,以及实现定时器事件的方法。具体代码如下图所示:
具体的效果见文章顶部。
二、自己编写页面跳转函数
由于自己编写跳转函数的过程较为复杂,不建议使用,但具体的编写过程可参照按钮点击事件切换Screen。