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

TouchGFX心得——画面控制的三种方式

[复制链接]
EPTmachine 发布时间:2025-10-8 15:59

TouchGFX设计交互界面的移动控件、交互动作以及界面操作时,可以通过内置的Interaction、添加控件虚函数搭配Intercation、周期回调函数三种方式实现界面的变化。

内置Interaction

TouchGFX界面设计时,可以在指定的屏幕中添加Interaction来实现界面控件事件的响应,同时TouchGFX内置多种响应事件供用户选择。根据添加事件的要求填写具体的控制参数,用户无需编写代码即可完成界面的交互设计。

Touch_Trigger_Route.png

上图中为使用内置的Interaction实现点击屏幕上的按钮完成屏幕切换,用户通过图形界面指定触发事件、触发源、触发动作、动作对象、动作参数以及触发名称快速完成切换屏幕的操作。

intercation.gif

使用内置的Interaction实现界面响应方便快捷,适合完成简单的画面动作。缺点是不够灵活,一次只能指定一个触发动作,难以应付复杂的界面设计需要。

添加控件虚函数搭配Intercation

在Intercation界面中,可以选择call virtual function添加用户自定义代码。在对话框中指定要实现的虚函数的函数名。

Interaction_call_virtual_function.png

在界面上添加一个隐藏的flexbutton并添加一个Intercation调用virtual function的事件。

Interaction_call_virtual_function_def.png

设定完成并生成代码,在工程文件夹的TouchGFX/generated/include/gui_generated/screen1_screen/Scree1ViewBase.hpp中可以看到添加的虚函数fucntion1

TouchGFX_Virtual_function.png

TouchGFX/gui/include/gui/screen1_screen/Screen1View.hpp中的Screen1View类中添加该虚函数的声明。

Screen1View_virtual_function.png

并在TouchGFX/gui/src/screen1_screen/Screen1View.cpp对该虚函数进行定义。在界面中添加一幅图片,在虚函数中实现对图片的移动动画,实现移动动画的代码如下。

void function1()
{
    image1.clearMoveAnimationEndedAction();
    image1.startMoveAnimation(237,15,60,touchgfx::EasingEquations::sineEaseOut,touchgfx::EasingEquations::sineEaseOut);
}

实际的运行效果如下。

virtualfunc.gif

HandleTickEvent

HaandelTickEvent是TouchGFX框架中的虚函数,以固定周期(一般每秒调用60次)在屏幕重绘时调用,用户通过对其进行重写,可以修改界面的响应的函数,对屏幕上的控件进行操作。上面的内置Intercation和调用virtual function都是基于事件驱动的一次性动作、使用HandleTickEvent可以实现循环检测,比如图片的不停移动。

使用HandleTickEvent进行编程,首先需要在屏幕对应的类中添加virtual void handleTickEvent()声明,比如TouchGFX/gui/include/gui/screen1_screen/Screen1View.hpp的Screen1View添加该函数的声明。

同时在对应的TouchGFX/gui/src/screen1_screen/Screen1View.cpp源文件中添加该函数的具体定义。以下为实现图片往复运动的代码,通过一个计数变量用于计算和管理每次调用Tick函数时图片的坐标,调用图片的设置位置函数来实现图片的运动。

void Screen1View::handleTickEvent()
{
    image1.invalidate();

    if(cntr<115)
    {
        image1.setX(cntr+50);
        cntr++;
    }
    else
    {
        cntr=0;
    }

    image1.invalidate();
}

handletick.gif

收藏 评论0 发布时间:2025-10-8 15:59

举报

0个回答

所属标签

ST中文论坛活动

即日起开启活动话题入口,之后的活动统一都放在此处,欢迎大家的加入!


最新内容

相似分享

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