可否提供一个简单的LVGL回调示例,解释其工作原理?
时间: 2024-10-12 10:15:45 浏览: 15
回调函数Callback Function
当然可以。下面是一个简单的LVGL回调示例,我们创建一个按钮,并设置点击事件的回调:
```c
#include "lvgl.h"
// 定义一个简单的点击事件处理函数
static void button_clicked(lv_obj *obj, void *data) {
static int counter = 0;
counter++;
printf("Button clicked %d times.\n", counter);
}
int main(void) {
// 初始化LVGL
if (lv_init() != LV_OK) return -1;
// 创建一个屏幕对象
lv_scr_t *scr = lv_scr_create();
// 创建一个按钮并设置点击事件回调
lv_obj_t *btn = lv_button_create(scr);
lv_obj_set_style_padd_all(btn, LV_PAD_ALL, 10); // 设置一些边距
lv_label_set_text(lv_obj_get_label(btn), "Click me"); // 显示文本
// 注册点击事件回调
lv_event_cb_set(btn, LV_EVENT_CLICKED, button_clicked);
// 开始绘制并显示GUI
lv_task_handler(NULL);
return 0;
}
```
在这个示例中,`button_clicked` 函数会在每次用户点击按钮时被调用,计数器会递增并打印出来。当你运行这个程序时,每点击一次按钮,控制台就会显示出相应的点击次数。
阅读全文