标签是用于显示文本的基本对象类型!算是一个比较常用的控件了
标签只有一个主要部分,称为 LV_LABEL_PART_MAIN 。它使用所有典型的背景属性和文本属性。填充可用于使文本的区域在相关方向上变小。
用这个函数设置文本lv_label_set_text(label, "New text")
用这个函数设置文本格式lv_label_set_text_fmt(label, "Value: %d", 15)
我们来写个程序验证下:
void lvgl_label_text_test(void)
{
lv_obj_t* label1 = lv_label_create(lv_scr_act(), NULL);
lv_obj_set_pos(label1,100,100);
lv_label_set_text(label1, "Label Text");
lv_obj_t* label2 = lv_label_create(lv_scr_act(), NULL);
lv_obj_set_pos(label2, 100, 200);
lv_label_set_text_fmt(label2, "Label Text %d",2);
}
换行用这个\n字符,比如"line1\nline2\n\nline4"
void lvgl_label_line_test(void)
{
lv_obj_t* label1 = lv_label_create(lv_scr_act(), NULL);
lv_obj_set_pos(label1, 100, 100);
lv_label_set_text(label1, "line1\nline2\n\nline4");
}
默认情况下,标签对象的宽度会自动扩展为文本大小。否则,可以根据几种长模式策略来操纵文本:
此部分我觉得要注意一点:就是在设置Text之前设置长模式,否则不起作用
用这个函数进行文本对齐lv_label_set_align(label, LV_LABEL_ALIGN_LEFT/RIGHT/CENTER)
你可以用这样"Write a #ff0000 red# word"重新着色,但是必须要用这个函数开启重新着色功能lv_label_set_recolor()
我们来弄一个官方综合例子吧:
void lvgl_label_test1(void)
{
lv_obj_t* label1 = lv_label_create(lv_scr_act(), NULL);
lv_label_set_long_mode(label1, LV_LABEL_LONG_BREAK); /*Break the long lines*/
lv_label_set_recolor(label1, true); /*Enable re-coloring by commands in the text*/
lv_label_set_align(label1, LV_LABEL_ALIGN_CENTER); /*Center aligned lines*/
lv_label_set_text(label1, "#0000ff Re-color# #ff00ff words# #ff0000 of a# label "
"and wrap long text automatically.");
lv_obj_set_width(label1, 150);
lv_obj_align(label1, NULL, LV_ALIGN_CENTER, 0, -30);
lv_obj_t* label2 = lv_label_create(lv_scr_act(), NULL);
lv_label_set_long_mode(label2, LV_LABEL_LONG_SROLL_CIRC); /*Circular scroll*/
lv_obj_set_width(label2, 150);
lv_label_set_text(label2, "It is a circularly scrolling text. ");
lv_obj_align(label2, NULL, LV_ALIGN_CENTER, 0, 30);
}
好了,完结了,更多精彩继续戳↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓