LVGL(一)基础对象
一、对象的创建和基础设置
1.1 代码
1 | obj = lv_obj_create(lv_screen_active()); //在当前活动的屏幕上创建一个对象 |
1.2 说明
lv_screen_active()
获取当前活动屏幕LV_PCT(40)
宽度占屏幕宽度的 40%。LV_ALIGN_CENTER
将对象对齐到屏幕的中心位置0,0
相对位置偏移量,意味着对象的中心点与屏幕的中心对齐,没有偏移
1 | lv_obj_t * obj = lv_obj_create(lv_screen_active());//窗机爱你对象 |
LV_LOG_USER()
控制台输出数据
二、位置
2.1 LCD坐标系
1 |
三、盒子模型
3.1
一、创建对象
- 在屏幕上创建开关部件switch
1 | lv_obj_t* switch1 = lv_switch_create(lv_scr_act()); |
- 在按键switch1上创建开关部件switch2
1 | lv_obj_t* switch2 = lv_switch_create(switch1); |
二、设置大小
- 设置宽度
1 | lv_obj_set_width(lv_obj_t * obj, lv_coord_t width); |
- 设置高度
1 | lv_obj_set_height(lv_obj_t * obj, lv_coord_t height); |
- 同时设置宽度和高度
1 | lv_obj_set_size(lv_obj_t * obj, lv_coord_t width, lv_coord_t height); |
三、设置位置
- 原点为(0,0),X轴向右,Y轴向下
- 若屏幕像素为800*480,则原点的对点为(799,470)
- 子类以父类的左上角为原点,超出父对象的区域不显示
- 设置X轴坐标
1 | lv_obj_set_x(lv_obj_t * obj, lv_coord_t x); |
- 设置Y轴坐标
1 | lv_obj_set_y(lv_obj_t * obj, lv_coord_t y); |
- 同时设置X、Y轴坐标
1 | lv_obj_set_pos(lv_obj_t * obj, lv_coord_t x, lv_coord_t y); |
四、设置对齐方式
1. 参照父对象对齐
- 参照父对象对齐
1 | lv_obj_set_align(lv_obj_t * obj, //子对象 |
- 参照父对象对齐,在进行偏移
1 | lv_obj_align(lv_obj_t * obj, //子对象 |
2. 参照其它对象对齐
1 | lv_obj_align_to(lv_obj_t * obj, //子对象 |
3. 对齐模式
OUT_TOP_LEFT | OUT_TOP_MID | OUT_TOP_RIGHT | ||
---|---|---|---|---|
OUT_LEFT_TOP | TOP_LEFT | TOP_MID | TOP_RIGHT | OUT_RIGHT_TOP |
OUT_LEFT_MID | LEFT_MID | CENTER | RIGHT_MID | OUT_RIGHT_MID |
OUT_LEFT_BOTTOM | BOTTOM_LEFT | BOTTOM_MID | BOTTOM_RIGHT | OUT_RIGHT_BOTTOM |
OUT_BOTTOM_LEFT | OUT_BOTTOM_MID | OUT_BOTTOM_RIGHT |
五、设置样式
- 样式用于设置部件的外观,以优化显示界面和实现用户交互
1 | static lv_style_t style; //定义样式变量 |
- 添加本地样式
1 | lv_obj_t *obj = lv_boj_create(lv_scr_act()); //创建一个部件 |
六、设置事件
- 在LVGL中,当发生用户感兴趣的事情时,可以触发回调事件,以执行相关操作
- 添加事件
1 | lv_obj_add_event_cb(lv_obj_t * obj, //子对象 |
- 删除事件
1 | lv_obj_remove_event_cb(lv_obj_t * obj, //子对象 |
- 不同的事件类型共用同一个回调函数
1 | static void event_cb(lv_event_t* e) |
- 不同的部件共用同一个回调函数
1 | static void event_cb(lv_event_t* e) |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 The personal blog of DWen_666!