STM32F429IGT6项目准备9——关于TouchGFX ClickListener

文章目录

  • 1 前言
  • 2 如何使用
  • 3 总结

1 前言

第九次记录一下如何使用TouchGFX ClickListener功能。ClickListener是属于MIXINS选项内的功能,几乎所有控件都会有这个功能,也就意味着几乎所有控件都可以监听触摸事件。官方关于MIXINS的介绍非常详实,阅读起来也非常舒服,这里填上连接https://support.touchgfx.com/docs/development/ui-development/touchgfx-engine-features/mixins/
STM32F429IGT6项目准备9——关于TouchGFX ClickListener_第1张图片

2 如何使用

以BOX为例,勾选ClickListener后,下一步就是在Screen1View.hpp添加回调callback和处理函数。

//Screen1View.hpp
class Screen1View : public Screen1ViewBase
{
public:
    Screen1View();
    // Declaring callback handler for Box
    void boxClickHandler(const Box& b, const ClickEvent& e);

protected:
    // Declaring callback type of box and clickEvent
    Callback<Screen1View, const Box&, const ClickEvent&> boxClickedCallback;
};

这里的回调callback,我的理解只是一个节点,用于连接当前屏幕和处理函数,当前屏幕中的所有控件共享一个处理函数。
接下来绑定屏幕和处理函数。

//Screen1View.cpp
Screen1View::Screen1View() :
    // In constructor for callback, bind to this view object and bind which function to handle the event.
    boxClickedCallback(this, &Screen1View::boxClickHandler) { }

到此,屏幕和处理函数绑定了,还需要做的是告诉控件当触摸的时候,使用哪一个回调callback。

Screen1View.cpp
void Screen1View::setupScreen()
{
    // Add the callback to box
    box.setClickAction(boxClickedCallback);
}

接下来实现处理函数

Screen1View.cpp
void Screen1View::boxClickHandler(const Box& b, const ClickEvent& evt)
{
    if (&b == &box && e.getType() == ClickEvent::PRESSED)
    {	//box被点击时候执行以下代码
        //Implement what should happen when 'box' is touched/clicked here.
    }
}

3 总结

大家应该可以看出来,我是直接翻译的^ V ^, 只在最后一处添加了分析触摸事件的类型

有问题请留言
.
.
.
——END

你可能感兴趣的:(stm32)