1.标签的定义
标签是用来显示文本的基本对象类型。
2.标签的常用函数介绍
2.1创建标签
lv_obj_t * label = lv_label_create(parent);
2.2设置显示文本
2.2.1直接设置要显示的文本
lv_label_set_text(label, "New text");
2.2.2格式化给定要显示的文本(和printf很类似):
lv_label_set_text_fmt(label, “%s: %d”, “Value”, 15);
2.2.3文本换行
lv_label_set_text(label, " line1\nline2\n\nline4 ");
2.2.4大小设置
/*这里的函数和前面的设置大小一样*/
lv_obj_set_size()
lv_obj_set_width()
lv_obj_set_height()
2.2.5指定标签的模式
/*
宏介绍:
LV_LABEL_LONG_WRAP 如果有多个换行,并且如果高度为LV_SIZE_CONTENT,那么高度会根据文本换行被动
扩展;否则文本将被剪掉。(默认设置)
LV_LABEL_LONG_DOT 如果文本太长,就保持大小并在末尾写3个点
LV_LABEL_LONG_SCROLL 如果文本比标签宽(太长),则可以水平来回滚动显示它。如果它很高(多个\n换行),
可以垂直滚动。只滚动一个方向,水平滚动的优先级更高。
LV_LABEL_LONG_SCROLL_CIRCULAR 如果文本比标签宽,则水平滚动它。如果它更高,就垂直滚动。只滚动一
个方向,水平滚动的优先级更高。
LV_LABEL_LONG_CLIP 剪掉超出标签范围外的文本部分。
*/
/*设置函数例子*/
lv_label_set_long_mode(label, LV_LABEL_LONG_SCROLL_CIRCULAR);
2.2.6文本着色
/*例子需要自己修改*/
lv_style_set_text_color(&style_obj, lv_color_hex(0xf7b37b)); lv_obj_set_style_text_color(label, lv_color_hex(0xf7b37b), 0);
/*文本某些部分重新着色*/
lv_label_set_recolor(label1, true);
lv_label_set_text(label1, "#0000ff Re-color# #ff00ff words# #ff0000 of a# label);
2.2.7 显示图标
lv_label_set_text(my_label, LV_SYMBOL_OK); // 直接显示图标
lv_label_set_text(my_label, LV_SYMBOL_OK “Apply”); // 图标与字符串一起使用
lv_label_set_text(my_label, LV_SYMBOL_OK LV_SYMBOL_WIFI LV_SYMBOL_PLAY); // 多个图标一起使用
2.2.8给标签添加事件处理(注意标签本来是没有事件处理的需要使用一个函数开启)
lv_obj_add_flag(label, LV_OBJ_FLAG_CLICKABLE); // 使输入设备可点击对象
代码示例:
char * text = "www.100ask.net"; // 要显示的文字
/* 创建一个基础对象 label */
lv_obj_t * label = lv_label_create(lv_scr_act()); // 创建一个label部件(对象),他的父对象是活动屏幕对象
lv_obj_center(label);
lv_obj_t * labe2 = lv_label_create(lv_scr_act()); // 创建一个labe2部件(对象),他的父对象是活动屏幕对象
lv_obj_align_to(labe2, label , LV_ALIGN_OUT_BOTTOM_MID, 0, 0);
lv_obj_t * labe3 = lv_label_create(lv_scr_act()); // 创建一个labe2部件(对象),他的父对象是活动屏幕对象
//显示特定图标
lv_label_set_text(labe3, LV_SYMBOL_OK LV_SYMBOL_WIFI LV_SYMBOL_PLAY);
/* 展示文字 */
/* 设置要显示的文本,函数中会另外开辟和给定的字符串大小的空间存放字符串(常用) */
lv_label_set_text(label, text);
//lv_label_set_text(labe2, "fjq11101222"); // 也可以这样使用
/* 设置要显示的文字,也会另外开辟空间存放字符串,但是可以像 printf 格式化字符串 */
lv_label_set_text_fmt(labe2, "%s: %d", "Value", 15);