标签部件组成部分:
- 主体 (LV_PART_MAIN) :使用所有典型的背景属性和文本属性。 填充值可用于在文本和背景之间添加空间。
- 滚动条 (LV_PART_SCROLLBAR) :当文本大于组件的大小时显示的滚动条。
- 选中的文本 (LV_PART_SELECTED) :告诉所选文本的样式。只能使用 text_color 和 bg_color 样式属性。
![img]()
创建标签部件以及设置文本
- 创建标签部件:
lv_obj_t *label = lv_label_create(parent);
- 设置文本的3种方式:
① 直接设置文本,存储文本的内存动态分配:
lv_label_set_text( label, "hello \n lvgl");
② 文本不存储在动态内存,而是在指定的缓冲区中(慎用):
lv_label_set_text_static( label,"hello" );
③ 格式化显示文本,类似printf:
lv_label_set_text_fmt( label, “Value: %d”, 50 );
改变文本的样式
- 设置文本样式:
① 背景颜色:
lv_obj_set_style_bg_color( label, lv_color_hex(0xffe1d4), LV_STATE_DEFAULT );
LV_STATE_DEFAULT:触发方式;具体的可以跳转查看
此函数就算正常使用没有效果,因为lvgl将它的默认透明度设置成了完全透明(0),必须更改透明度(0-255) 才能看见!!
② 字体大小:
lv_obj_set_style_text_font( label, &lv_font_montserrat_30, LV_STATE_DEFAULT );
③ 文本颜色:
lv_obj_set_style_text_color( label, lv_color_hex(0xf7b37b), LV_STATE_DEFAULT );
④ 更改透明度:
lv_obj_set_style_bg_opa(label, 0, LV_STATE_DEFAULT);
- 设置个别文本的字体颜色
lv_label_set_recolor( label, true ); /* 开启重新着色功能 */
lv_label_set_text( label, "hello #ff0000 lvgl# " ); /* 单独设置颜色 */
文本长度超过部件大小的时候显示
- 默认情况下,如果没有限定标签部件大小,那它的大小自动扩展为文本大小。
- 长文本模式:
lv_label_set_long_mode(label, LV_LABEL_LONG_...);
/* 其中LV_LABEL_LONG_...的可选参数如下所示 */
enum {
LV_LABEL_LONG_WRAP, /* 默认模式, 如果部件大小已固定,超出的文本将被剪切 */
LV_LABEL_LONG_DOT, /* 将 label 右下角的最后 3 个字符替换为点… */
LV_LABEL_LONG_SCROLL, /* 来回滚动 */
LV_LABEL_LONG_SCROLL_CIRCULAR, /* 循环滚动 */
LV_LABEL_LONG_CLIP, /* 直接剪切掉部件外面的文本部分 */
};
标签不触发事件(回调函数)!!!