基础对象lv_obj
基础对象的通用属性,所有的控件都可以设置该属性
// 设置位置
lv_obj_set_pos(label, 50, 50);
// 设置大小lv_obj_set_size(label, 100, 100);
// 设置可以点击lv_obj_set_click(label, true);
// 设置可以拖拽lv_obj_set_drag(label, true);
给控件添加事件
lv_obj_set_event_cb(btn1, btn_event_handler);
static void btn_event_handler(lv_obj_t* obj, lv_event_t event) {
if (obj == btn1) { if (event == LV_EVENT_CLICKED) { printf("Btn1 Clicked\n"); lv_label_set_text(btn_label, "Btn1 Clicked"); } }}
lv_obj_set_user_data
设置值
int32_t tmp = en; lv_obj_set_user_data(btn, (void )tmp); item_obj->user_data = (void )i;// 取值 int32_t en = (int32_t )lv_obj_get_user_data(obj);
lv_obj_get_width
lv_obj_get_height
- 获取指定UI宽高
lv_obj_get_width(scr); lv_obj_get_height(scr);
lv_obj_set_ext_click_area
- 增加点击区域
lv_obj_set_ext_click_area(btn, 10, 10, 10, 10);
lv_page_glue_obj
- 粘合到page上,使一道滚动
- void lv_page_glue_obj(lv_obj_t *obj, bool glue)
Parameters
- obj: pointer to an object on a page
- glue: true: enable glue, false: disable glue
lv_obj_align
-
lv_disp_get_scr_act
获取当前活动的Screen
// 获取当前默认的Screen lv_obj_t *scr = lv_disp_get_scr_act(NULL); // 根UI lv_obj_t *main_obj = lv_obj_create(scr, NULL); // 设置宽高 lv_obj_set_size(main_obj, lv_obj_get_width(scr), lv_obj_get_height(scr)); // 在Screen中的对齐方式 lv_obj_align(main_obj, scr, LV_ALIGN_IN_TOP_LEFT, 0, 0);对齐方式
enum { LV_ALIGN_CENTER = 0, LV_ALIGN_IN_TOP_LEFT, LV_ALIGN_IN_TOP_MID, LV_ALIGN_IN_TOP_RIGHT, LV_ALIGN_IN_BOTTOM_LEFT, LV_ALIGN_IN_BOTTOM_MID, LV_ALIGN_IN_BOTTOM_RIGHT, LV_ALIGN_IN_LEFT_MID, LV_ALIGN_IN_RIGHT_MID, LV_ALIGN_OUT_TOP_LEFT, LV_ALIGN_OUT_TOP_MID, LV_ALIGN_OUT_TOP_RIGHT, LV_ALIGN_OUT_BOTTOM_LEFT, LV_ALIGN_OUT_BOTTOM_MID, LV_ALIGN_OUT_BOTTOM_RIGHT, LV_ALIGN_OUT_LEFT_TOP, LV_ALIGN_OUT_LEFT_MID, LV_ALIGN_OUT_LEFT_BOTTOM, LV_ALIGN_OUT_RIGHT_TOP, LV_ALIGN_OUT_RIGHT_MID, LV_ALIGN_OUT_RIGHT_BOTTOM, }; typedef uint8_t lv_align_t;lv_obj_get_coords
获取lv_obj在屏幕中的坐标,左上角 0 0 右下角w h
- 屏幕上方y为负值
- 屏幕下方y为正值
同一个lv_obj随着滑动,lv_area_t坐标动态变化 ```
lv_obj_t *scrt_obj = lv_page_get_scrl(state->base_objs.page_obj); lv_area_t scrt_area; lv_obj_get_coords(scrt_obj, &scrt_area);
typedef struct { lv_coord_t x1; lv_coord_t y1; lv_coord_t x2; lv_coord_t y2; } lv_area_t; ```
屏幕对象Screen
- 屏幕对象Screen
- 屏幕对象事一个特殊的对象,他没有父对象
创建screen对象
lv_obj_t * screen1 = lv_obj_create(NULL,NULL);
littlevgl默认会为显示器创建一个lv_obj基础对象作为屏幕,获取方法如下
lv_src_act();
