LVGL-基本组件
lv_init
此函数用于初始化LVGL
void lv_init(void)
lv_deinit
恢复缺省配置
void lv_deinit(void)
lv_is_initialized
用于检查LVGL是否初始化
bool lv_is_initialized(void)
//ret:初始化返回true,未初始化返回false
lv_obj_create
此函数用于创建基本的对象
lv_obj_t *lv_obj_create(lv_obj_t *parent)
//parent:创建对象的父对象
//返回创建对象的句柄
lv_obj_add_flag
用于给对象添加标志
void lv_obj_add_flag(lv_obj_t * obj, lv_obj_flag_t f);
//obj:指向要操作的对象的指针
//f:要添加的标志(lv_obj_flag_t)。标志是一个枚举值,用于指定对象的行为或状态
/*
LV_OBJ_FLAG_CLICKABLE:使对象可点击。
LV_OBJ_FLAG_HIDDEN:隐藏对象。
LV_OBJ_FLAG_SCROLLABLE:使对象可滚动。
LV_OBJ_FLAG_SCROLL_ON_FOCUS:当对象获得焦点时滚动。
LV_OBJ_FLAG_EVENT_BUBBLE:允许事件冒泡到父对象。
LV_OBJ_FLAG_GESTURE_BUBBLE:允许手势事件冒泡到父对象。
LV_OBJ_FLAG_FLOATING:使对象浮动(不占据布局空间)。
LV_OBJ_FLAG_IGNORE_LAYOUT:忽略布局更新。
LV_OBJ_FLAG_ADV_HITTEST:启用高级命中测试(允许自定义命中区域)
*/
lv_obj_clear_flag
用于移除对象的某个标志
void lv_obj_clear_flag(lv_obj_t * obj, lv_obj_flag_t f);
//obj:指向要操作的对象的指针
//f:要移除的标志
/*
LV_OBJ_FLAG_CLICKABLE:使对象可点击。
LV_OBJ_FLAG_HIDDEN:隐藏对象。
LV_OBJ_FLAG_SCROLLABLE:使对象可滚动。
LV_OBJ_FLAG_SCROLL_ON_FOCUS:当对象获得焦点时滚动。
LV_OBJ_FLAG_EVENT_BUBBLE:允许事件冒泡到父对象。
LV_OBJ_FLAG_GESTURE_BUBBLE:允许手势事件冒泡到父对象。
LV_OBJ_FLAG_FLOATING:使对象浮动(不占据布局空间)。
LV_OBJ_FLAG_IGNORE_LAYOUT:忽略布局更新。
LV_OBJ_FLAG_ADV_HITTEST:启用高级命中测试(允许自定义命中区域)
*/
lv_obj_add_state
用于给对象添加状态的函数。状态是 LVGL 中用于控制对象外观或行为的属性
void lv_obj_add_state(lv_obj_t * obj, lv_state_t state);
//obj:指向要操作的对象的指针
//state:要添加的状态
/*
LV_STATE_DEFAULT:默认状态。
LV_STATE_FOCUSED:对象获得焦点时的状态。
LV_STATE_FOCUSED_KEY:通过键盘获得焦点时的状态。
LV_STATE_FOCUSED_TAB:通过 Tab 键获得焦点时的状态。
LV_STATE_PRESSED:对象被按下时的状态。
LV_STATE_CHECKED:对象被选中时的状态(例如复选框)。
LV_STATE_DISABLED:对象被禁用时的状态。
LV_STATE_EDITED:对象被编辑时的状态。
LV_STATE_HOVERED:对象被鼠标悬停时的状态。
LV_STATE_GROUP_FOCUSED:对象获得组焦点时的状态。
*/
lv_obj_clear_state
用于移除对象的某个或某些状态
void lv_obj_clear_state(lv_obj_t * obj, lv_state_t state);
//obj:指向要操作的对象的指针
//state:要移除的状态
/*
LV_STATE_DEFAULT:默认状态。
LV_STATE_FOCUSED:对象获得焦点时的状态。
LV_STATE_PRESSED:对象被按下时的状态。
LV_STATE_CHECKED:对象被选中时的状态(例如复选框)。
LV_STATE_DISABLED:对象被禁用时的状态。
LV_STATE_HOVERED:对象被鼠标悬停时的状态。
LV_STATE_FOCUSED_KEY:通过键盘获得焦点时的状态。
LV_STATE_FOCUSED_TAB:通过 Tab 键获得焦点时的状态。
LV_STATE_GROUP_FOCUSED:对象获得组焦点时的状态。
LV_STATE_EDITED:对象被编辑时的状态。
*/
lv_obj_set_user_data
用于为对象设置用户自定义数据
static inline void lv_obj_set_user_data(lv_obj_t * obj, void * user_data);
//obj:指向要操作的对象的指针
//user_data:指向用户自定义数据的指针
lv_obj_has_flag
用于检查对象是否具有某个标志
bool lv_obj_has_flag(const lv_obj_t * obj, lv_obj_flag_t flag);
//obj:指向要检查的对象的指针
//flag:要检查的标志
//ret:如果对象具有指定的标志,则返回 true,如果对象不具有指定的标志,则返回 false
/*
LV_OBJ_FLAG_CLICKABLE:对象是否可点击。
LV_OBJ_FLAG_HIDDEN:对象是否隐藏。
LV_OBJ_FLAG_SCROLLABLE:对象是否可滚动。
LV_OBJ_FLAG_SCROLL_ON_FOCUS:对象在获得焦点时是否滚动。
LV_OBJ_FLAG_EVENT_BUBBLE:事件是否冒泡到父对象。
LV_OBJ_FLAG_GESTURE_BUBBLE:手势事件是否冒泡到父对象。
LV_OBJ_FLAG_FLOATING:对象是否浮动(不占据布局空间)。
LV_OBJ_FLAG_IGNORE_LAYOUT:对象是否忽略布局更新。
LV_OBJ_FLAG_ADV_HITTEST:对象是否启用高级命中测试。
*/
lv_obj_has_flag_any
用于检查一个对象(lv_obj)是否具有指定的任何标志
bool lv_obj_has_flag_any(const lv_obj_t * obj, lv_obj_flag_t flag);
//obj:指向要检查的对象的指针
//flag:要检查的标志。可以是单个标志,也可以是多个标志的组合(通过位运算符 |)
//ret:如果对象具有指定的任何标志,则返回 true。如果对象不具有任何指定的标志,则返回 false
/*
lv_obj_flag_t 是一个枚举类型,定义了多种标志,例如:
LV_OBJ_FLAG_HIDDEN:对象是否隐藏。
LV_OBJ_FLAG_CLICKABLE:对象是否可点击。
LV_OBJ_FLAG_SCROLLABLE:对象是否可滚动。
LV_OBJ_FLAG_FOCUSED:对象是否处于焦点状态
*/
lv_obj_get_state
用于获取图形用户界面(GUI)对象的当前状态
lv_state_t lv_obj_get_state(const lv_obj_t * obj);
//obj:指向要获取状态的对象的指针
//ret:返回一个 lv_state_t 类型的值,表示对象的当前状态
/*
LV_STATE_DEFAULT:默认状态。
LV_STATE_FOCUSED:对象获得焦点。
LV_STATE_FOCUSED_KEY:对象通过键盘获得焦点。
LV_STATE_PRESSED:对象被按下。
LV_STATE_CHECKED:对象被选中(例如复选框)。
LV_STATE_DISABLED:对象被禁用。
LV_STATE_HOVERED:鼠标悬停在对象上。
LV_STATE_FOCUSED_PRESSED:对象获得焦点且被按下。
LV_STATE_FOCUSED_KEY_PRESSED:对象通过键盘获得焦点且被按下。
LV_STATE_FOCUSED_HOVERED:对象获得焦点且鼠标悬停在其上。
*/
lv_obj_has_state
用于检查对象是否具有某个特定的状态
bool lv_obj_has_state(const lv_obj_t * obj, lv_state_t state);
//obj:指向要检查的对象的指针
//state:要检查的状态,类型为 lv_state_t
//ret:如果对象具有指定的状态,则返回 true.如果对象不具有指定的状态,则返回 false
/*
LV_STATE_DEFAULT:默认状态。
LV_STATE_FOCUSED:对象获得焦点。
LV_STATE_PRESSED:对象被按下。
LV_STATE_CHECKED:对象被选中(例如复选框)。
LV_STATE_DISABLED:对象被禁用。
LV_STATE_HOVERED:鼠标悬停在对象上。
LV_STATE_FOCUSED_PRESSED:对象获得焦点且被按下。
LV_STATE_FOCUSED_HOVERED:对象获得焦点且鼠标悬停在其上。
*/
lv_obj_get_group
用于获取与某个对象关联的按键组
lv_group_t * lv_obj_get_group(const lv_obj_t * obj);
//obj:指向要获取按键组的对象的指针
//ret:返回一个指向 lv_group_t 的指针,表示与该对象关联的按键组,如果对象没有关联任何按键组,则返回 NULL
lv_obj_get_user_data
用于获取与某个对象关联的用户自定义数据
void* lv_obj_get_user_data(const lv_obj_t * obj);
//obj:指向要获取用户自定义数据的对象的指针
//ret:返回一个指向用户自定义数据的指针(void*),如果对象没有设置用户自定义数据,则返回 NULL
lv_obj_allocate_spec_attr
用于为对象分配特殊的属性(spec_attr)。特殊属性是对象的额外属性,通常用于存储与对象相关的特定信息,这些信息不属于对象的基本属性
void lv_obj_allocate_spec_attr(lv_obj_t * obj);
//obj:指向要分配特殊属性的对象的指针
lv_obj_check_type
用于检查一个对象是否是某种特定类型的对象
bool lv_obj_check_type(const lv_obj_t * obj, const lv_obj_class_t * class_p);
//obj:指向要检查的对象的指针
//class_p:指向要检查的目标对象类的指针。对象类定义了对象的类型和行为。
//ret:如果对象是目标类型的实例(或其子类的实例),则返回 true.如果对象不是目标类型的实例,则返回 false
lv_obj_has_class
用于检查一个对象是否属于某个特定的类
bool lv_obj_has_class(const lv_obj_t * obj, const lv_obj_class_t * class_p);
//obj:指向要检查的对象的指针
//class_p:指向要检查的目标对象类的指针
//ret:如果对象属于指定的类(或其子类),则返回 true,如果对象不属于指定的类,则返回 false
lv_obj_get_class
用于获取对象的类(lv_obj_class_t)。在 LVGL 中,每个对象都属于一个特定的类,类定义了对象的行为、属性和方法
const lv_obj_class_t * lv_obj_get_class(const lv_obj_t * obj);
//obj:指向要获取类的对象的指针
//ret:返回一个指向对象类的指针(const lv_obj_class_t *),表示对象所属的类
lv_obj_is_valid
用于检查一个对象是否是有效的。在 LVGL 中,对象的有效性是指该对象是否已经被正确初始化,并且尚未被销毁
bool lv_obj_is_valid(const lv_obj_t * obj);
//obj:指向要检查的对象的指针
//ret:如果对象是有效的(已初始化且未被销毁),则返回 true,如果对象无效(未初始化或已被销毁),则返回 false
lv_obj_dpx
用于将给定的像素数(距离或大小)根据对象所在显示设备的 DPI(每英寸点数)进行缩放,确保在不同 DPI 的屏幕上具有相同的物理尺寸
static inline lv_coord_t lv_obj_dpx(const lv_obj_t * obj, lv_coord_t n);
//obj:指向对象的指针,用于获取对象所在显示设备的 DPI
//n:要缩放的像素数(逻辑像素)
//ret:返回缩放后的像素数(物理像素)