【LVGL(5)】标签的(label)用法 |
您所在的位置:网站首页 › label标签用法 › 【LVGL(5)】标签的(label)用法 |
官方手册:Label (lv_label) — LVGL documentation 标签是用于显示文本的基本对象类型。 盒子模型中,标签的组成: LV_PART_MAIN 矩形部分(盒子区域)。 填充值可用于在文本和背景之间添加空间。 LV_PART_SCROLLBAR 当要展示的文本大于部件的大小时,显示的滚动条部分。 LV_PART_SELECTED 选中文本时,突出显示的部分。label只能使用 text_color 和 bg_color 样式属性创建标签 lv_obj_t * label = lv_label_create(parent); 设置文本设置要显示的文本 动态分配缓冲区,不保留传递的文本。 lv_label_set_text(label, "HELLOW LVGL");也能够显示来自静态字符缓冲区的文本。文本不会存储在动态内存中,而是直接使用给定的缓冲区。 lv_label_set_text_static(label, "Text")格式化显示文本 lv_label_set_text_fmt(label, "Value: %d", 15)换行 使用 \n 换行,例如: lv_label_set_text(label, "line1\nline2\n\nline4"); 设置文本大小默认情况标签的大小设置为 LV_SIZE_CONTENT 会自动拓展成和文本一样的大小。 如果设置了宽度或高度,可以根据几种长模式策略来操纵比标签宽度更宽的文本。 lv_obj_set_width(label,50); //设置宽度 lv_obj_set_height(label,20); //设置高度 lv_obj_set_size(label,20,50);这样就可能出现文本的宽度或高度大小label的情况,就需要做一些调整。 LV_LABEL_LONG_WRAP:换行太长。 如果高度是 LV_SIZE_CONTENT标签的高度将被扩大,否则文本将被剪裁。 (默认) LV_LABEL_LONG_DOT:将标签右下角的最后 3 个字符替换为点 ( ...) LV_LABEL_LONG_SCROLL:如果文本比标签宽,则水平来回滚动。 如果它更高,请垂直滚动。 只滚动一个方向,水平滚动具有更高的优先级。 LV_LABEL_LONG_SCROLL_CIRCULAR:如果文本比标签宽,则连续水平滚动。 如果它更高,请垂直滚动。 只滚动一个方向,水平滚动具有更高的优先级。 LV_LABEL_LONG_CLIP:只需剪切标签外的文本部分即可注意:LV_LABEL_LONG_DOT 是直接操作文本缓冲区以添加/删除点。如果使用 lv_label_set_text 和 lv_label_set_text_fmt 它们会分配一个单独的缓冲区,不会出问题。但是如果使用 lv_label_set_text_static 时我们传递给它的缓冲区必须是可写的。 设置接口 lv_label_set_long_mode(label, LV_LABEL_LONG_...) 设置字体样式设置自定义字库也如同这样 lv_obj_t * label = lv_label_create(lv_scr_act()); // 创建一个label部件(对象),他的父对象是活动屏幕对象 lv_obj_set_style_text_font(label, &lv_font_simsun_16_cjk, 0); // 使用内置的 cjk 字库 lv_label_set_text(label, "text"); 文本重新着色改变标签颜色 lv_obj_set_style_bg_color(label, lv_color_hex(0xf7b37b), 0); lv_obj_set_style_bg_opa(label, 100, 0); //不透明度可以通过样式改色 lv_style_set_text_color(&style_obj, lv_color_hex(0xf7b37b)); //共享样式 lv_obj_set_style_text_color(label, lv_color_hex(0xf7b37b), 0); //本地样式可以让文本某些部分重新上色 说明:#0000ff Re-color#:颜色值:0x0000ff,改变文本:Re-color lv_label_set_recolor(label, true); lv_label_set_text(label, "#0000ff Re-color# #ff00ff words# #ff0000 of a# label"); 文本选择如果在 lv_conf.h 中打开了 LV_LABEL_TEXT_SELECTION (默认开启),就可以选择部分文本了。这个和我们在PC用鼠标选中文本类似,但是这个效果只能在文本框(lv_textarea)中实现。Label只能事先手动选择指定范围的文本 lv_label_get_text_selection_start(label, start_char_index); lv_label_get_text_selection_start(label, end_char_index); lv_label_set_text_sel_start(label, 1); lv_label_set_text_sel_end(label, 6); 内置图标直接显示图标 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); 事件Label默认不接收输入事件,如果我们想设置输入类型的样式或者事件会无法生效,就需要打开 LV_OBJ_FLAG_CLICKABLE lv_obj_add_flag(label, LV_OBJ_FLAG_CLICKABLE); lv_obj_add_event_cb(label, function, LV_EVENT_ALL, 0); |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |