lv_obj_create()传入的是NULL,表示没有父object: /* create a screen*/lv_obj_t*scr=lv_obj_create(NULL); 细看lv_obj_create()的实现,也可以看到,如果parent != NULL,那就是创建一个normal object: lv_obj_t*lv_obj_class_create_obj(constlv_obj_class_t*class_p,lv_obj_t*parent){.../*C...
不过,创建相应的控件也很简单,比如创建按钮直接调用lv_btn_create即可,程序会执行函数lv_obj_class_create_obj和lv_obj_class_init_obj,其中就会对obj进行所需内存的申请和各种初始化。 控件创建完成之后并不会进行绘制,而是通过调用lv_task_handler来一次性绘制整个UI(其中就会考虑覆盖问题),这样一定程度上就可以减...
lv_init_lv_ll_init(&LV_GC_ROOT(_lv_disp_ll), sizeof(lv_disp_t));// 初始化显示器链表lv_disp_drv_register_lv_ll_ins_head(&LV_GC_ROOT(_lv_disp_ll));// 注册显示器到链表disp->act_scr = lv_obj_create(NULL);// 在显示器上创建一个默认屏幕lv_obj_class_create_objobj->coords.x1...
lv_obj_class_create_obj:用 get_instance_size 获取要创建对象类型的大小在堆中分配空间保存对应的对象,并将此对象保存到其父节点的children指针中,parent->spec_attr->children[parent->spec_attr->child_cnt - 1] = obj; lv_obj_class_init_obj: voidlv_obj_class_init_obj(lv_obj_t*obj){lv_obj_m...
LV_PART_SCROLLBAR当要展示的文本大于部件的大小时,显示的滚动条部分。 LV_PART_SELECTED选中文本时,突出显示的部分。label只能使用 text_color 和 bg_color 样式属性。 创建标签:lv_obj_t * label = lv_label_create(parent); 1.1 设置显示文本 创建了标签部件之后我们就可以设置文本来显示。
void lv_demo(void) { lv_obj_t * obj = lv_obj_create(lv_scr_act()); lv_obj_set_style_bg_color(obj, lv_palette_main(LV_PALETTE_RED), 0); lv_obj_set_style_radius(obj, LV_RADIUS_CIRCLE, 0); lv_obj_align(obj, LV_ALIGN_LEFT_MID, 10, 0); ...
void theme_apply_cb(lv_theme_t * th, lv_obj_t * obj) { /*如果物件是矩形物件,則添加風格*/ if(lv_obj_check_type(obj, &lv_obj_class)) { lv_obj_add_style(obj, &style_rect, LV_STATE_DEFAULT); } } /*初始化主題實例*/
lv_obj_t类定义在文件lvgl\src\core\lv_obj.h文件中,定义如下: typedefstruct_lv_obj_t{ constlv_obj_class_t*class_p; struct_lv_obj_t*parent; _lv_obj_spec_attr_t*spec_attr; _lv_obj_style_t*styles; #if LV_USE_USER_DATA ...
lv_obj_t *label_btn = lv_label_create(myBtn); // 创建文本标签,父对象:上面的btn按钮 lv_obj_align(label_btn, LV_ALIGN_CENTER, 0, 0); // 对齐于:父对象 lv_label_set_text(label_btn, "Test"); // 设置标签的文本 // 独立的标签 ...
}lv_obj_t; 1.2 对象属性 1.2.1 基本属性 basic attributes 所有对象共享一些基本属性,如position,size,parent,styles,event handlers等等,可对其进行设置/获取,举例如下; //obj的pos,class,style,draw,scroll属性等都有自己的xx.c和xx.h,...