Hi,大家好,欢迎来到STM32之littlevGL课堂,本节课带大家简单分析一下littleVGL的事件处理机制! 一 什么是事件 关于事件,我们已经在前面的控件学习阶段使用过很多了,比如我们第一次接触事件应该是单按钮控件那一节课,我们创建了一个事件回调函数用来响应按键的触发,没错,这就是我们第一次接触littleVGL的事件,当然后面还有很多控件都有使用过,但是没有仔细的去分析一下,这里带大家简单分析一下! 二 事件类型 事件可以分为下面几大类: 一般事件
特殊事件(仅适用于特定的对象类型)
三 事件回调函数 我们在上面看到有这么多的事件类型,是不是感觉有点难呢?其实我们平常开发中不会用到这么多的,也就是使用几个比较常见的,那我们再来温习一下事件回调函数的使用,首先你还是得创建一个控件对象,然后使用下面的函数绑定控件与事件回调函数,相信大家都还记得: lv_obj_set_event_cb(btn, my_event_cb); /*Assign an event callback*/ static void my_event_cb(lv_obj_t * obj, lv_event_t event) { switch(event) { case LV_EVENT_PRESSED: printf("Pressed\n"); break; case LV_EVENT_SHORT_CLICKED: printf("Short clicked\n"); break; case LV_EVENT_CLICKED: printf("Clicked\n"); break; case LV_EVENT_LONG_PRESSED: printf("Long press\n"); break; case LV_EVENT_LONG_PRESSED_REPEAT: printf("Long press repeat\n"); break; case LV_EVENT_RELEASED: printf("Released\n"); break; } /*Etc.*/ } 四 事件的触发方式 事件的触发是有两种方式的,一种是控件的自动触发,比如你按下按钮后的自动触发,这是一种方式,不过这种方式比较被动。 还有一种方式就是我们可以手动触发,就是我们可以通过函数去触发事件回调,那么怎么做呢,其实就是很简单: lv_event_send(label, LV_EVENT_VALUE_CHANGED, NULL); OK,这就是关于事件的一些知识点,大家有没有学会呢? 最新评论 |