嵌入式学习小组
直播中

陈霞

7年用户 873经验值
私信 关注

请问事件的触发方式是什么?

事件回调函数  
事件的触发方式

回帖(2)

訾存贵

2020-11-6 15:58:14
事件回调函数
我们在上面看到有这么多的事件类型,是不是感觉有点难呢?其实我们平常开发中不会用到这么多的,也就是使用几个比较常见的,那我们再来温习一下事件回调函数的使用,首先你还是得创建一个控件对象,然后使用下面的函数绑定控件与事件回调函数,相信大家都还记得:
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("Pressedn");            break;        case LV_EVENT_SHORT_CLICKED:            printf("Short clickedn");            break;        case LV_EVENT_CLICKED:            printf("Clickedn");            break;        case LV_EVENT_LONG_PRESSED:            printf("Long pressn");            break;        case LV_EVENT_LONG_PRESSED_REPEAT:            printf("Long press repeatn");            break;        case LV_EVENT_RELEASED:            printf("Releasedn");            break;    }       /*Etc.*/}
当然上面只是一个简单的例子,就跟我们前面学习按钮控件的时候差不多,当然这里只是简单跟大家看一下处理方式。
举报

李瑜斌

2020-11-6 15:58:23
事件的触发方式
事件的触发是有两种方式的,一种是控件的自动触发,比如你按下按钮后的自动触发,这是一种方式,不过这种方式比较被动。
还有一种方式就是我们可以手动触发,就是我们可以通过函数去触发事件回调,那么怎么做呢,其实就是很简单:
lv_event_send(label, LV_EVENT_VALUE_CHANGED, NULL);
其中第一个参数就是我们的控件,然后第二个参数就是我们想要触发的事件类型,也就是上面我们的列出来的那些事件类型。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分