
TouchGFX设计交互界面的移动控件、交互动作以及界面操作时,可以通过内置的Interaction、添加控件虚函数搭配Intercation、周期回调函数三种方式实现界面的变化。 内置InteractionTouchGFX界面设计时,可以在指定的屏幕中添加Interaction来实现界面控件事件的响应,同时TouchGFX内置多种响应事件供用户选择。根据添加事件的要求填写具体的控制参数,用户无需编写代码即可完成界面的交互设计。 上图中为使用内置的Interaction实现点击屏幕上的按钮完成屏幕切换,用户通过图形界面指定触发事件、触发源、触发动作、动作对象、动作参数以及触发名称快速完成切换屏幕的操作。 使用内置的Interaction实现界面响应方便快捷,适合完成简单的画面动作。缺点是不够灵活,一次只能指定一个触发动作,难以应付复杂的界面设计需要。 添加控件虚函数搭配Intercation在Intercation界面中,可以选择call virtual function添加用户自定义代码。在对话框中指定要实现的虚函数的函数名。 在界面上添加一个隐藏的flexbutton并添加一个Intercation调用virtual function的事件。 设定完成并生成代码,在工程文件夹的TouchGFX/generated/include/gui_generated/screen1_screen/Scree1ViewBase.hpp中可以看到添加的虚函数 在TouchGFX/gui/include/gui/screen1_screen/Screen1View.hpp中的Screen1View类中添加该虚函数的声明。 并在TouchGFX/gui/src/screen1_screen/Screen1View.cpp对该虚函数进行定义。在界面中添加一幅图片,在虚函数中实现对图片的移动动画,实现移动动画的代码如下。
实际的运行效果如下。 HandleTickEventHaandelTickEvent是TouchGFX框架中的虚函数,以固定周期(一般每秒调用60次)在屏幕重绘时调用,用户通过对其进行重写,可以修改界面的响应的函数,对屏幕上的控件进行操作。上面的内置Intercation和调用virtual function都是基于事件驱动的一次性动作、使用HandleTickEvent可以实现循环检测,比如图片的不停移动。 使用HandleTickEvent进行编程,首先需要在屏幕对应的类中添加 同时在对应的TouchGFX/gui/src/screen1_screen/Screen1View.cpp源文件中添加该函数的具体定义。以下为实现图片往复运动的代码,通过一个计数变量用于计算和管理每次调用Tick函数时图片的坐标,调用图片的设置位置函数来实现图片的运动。
|