样式
3种设置方式
-
lv_obj_set_style_xxx(obj,value ,selector);
-
obj: 指向要设置样式的 LVGL 对象(如
lv_obj_t *,lv_label_t *等)的指针。 -
value: 要设置的具体属性值。类型取决于具体的属性(例如颜色是lv_color_t,宽度是lv_coord_t,不透明度是lv_opa_t)。 -
selector: 样式选择器,用于指定该样式应用于对象的哪个部分或状态。0: 表示默认状态(主要部分)。LV_PART_MAIN: 主体部分。LV_PART_SCROLLBAR: 滚动条部分。LV_PART_INDICATOR: 指示器部分(如进度条、滑块)。LV_STATE_PRESSED: 按下状态。LV_STATE_FOCUSED: 聚焦状态。- 可以使用位运算组合,例如
LV_PART_MAIN | LV_STATE_PRESSED。
-
lv_obj_t *base_widget = lv_scr_act();
lv_obj_t *label = lv_label_create(base_widget);
lv_label_set_text(label, "This is a label");
lv_obj_align(label, LV_ALIGN_TOP_MID, 0, 0);
lv_obj_set_style_text_color(label, lv_palette_main(LV_PALETTE_RED), 0);
-
lv_obj_add_style(obj, &style, selector)
- 必须要创建一个lv_style_t变量,并且设置成static
static lv_style_t label_style;- 必须初始化,声明变量只分配了内存,但并没有“初始化”其内部逻辑结构
lv_style_init(&label_style);- 开始为这个lv_style_t添加样式
lv_style_set_text_color(&label_style, lv_palette_main(LV_PALETTE_RED));- 把这个样子附加到控件上,可以多个控件共用一个样式
lv_obj_add_style(label1,&label_style,0); lv_obj_add_style(label2,&label_style,0); -
主题 /
LV_STYLE_DEFAULT,完全不设置,走全局主题或默认值
样式其他函数
lv_style_t * style_def = lv_obj_class_get_style(&lv_label_class, 0);