学习网上开源教程,随手记录,如有纰漏,希望大佬们不吝赐教。
本文是学习lvgl的标签控件记录。
学习标签部件,有以下问题
#如何创建标签部件以及设置文本?
@@知识点1: 创建标签部件
lv_obj_t *label = lv_label_create(lv_scr_act()); //在当前屏幕创建一个标签部件
@@知识点2:设置文本的3种方式
(1)直接设置文本,存储文本的内存来自动态分配:
lv_label_set_text(label,"hello world!\n lvgl");
(2),文本不存储的动态内存中,而是在指定的缓冲区中(慎用)
!!!注意:主要是防止对内存管理不熟悉,避免内存安全等问题。
lv_label_set_text_static(lable , "hello ");
(3) 格式化显示文本,类似printf:
lv_label_set_text_fmt(label , "Value: %d",50);
#如何改变文本的样式
@@知识点1:设置文本样式
背景颜色: lv_obj_set_style_bg_color(label,lv_color_hex(0xffe1b4),LV_STATE_DEFAULT);
lv_obj_set_style_bg_opa(label,100,LV_STATE_DEFAULT);/*这句是为了防止背景默认透明,导致设置背景颜色无效果*/
//设置背景透明度为100,不透明
字体大小:
lv_obj_set_style_text_font(label,&lv_font_montserrat_30,LV_STATE_DEFAULT);
注意字体大小的使用,需要确认是否在lv_conf.h中置1,否则就会报错。
文本颜色:
lv_obj_set_style_text_color(label,lv_color_hex(0xf7b37b),LV_STATE_DEFAULT);
@@知识点2:
设置个别文本的字体颜色(v8版本适用):
lv_label_set_recolor(label ,true): /*开启重新着色功能*/
lv_label_set_text(label1,"hello #ff0000 lvgl#"); /*单独设置颜色*/
#当文本长度超过部件大小的时候怎么显示?
@@知识点1:
默认情况下,如果没有显示标签部件的大小,那它的大小自动拓展为文本大小。
@@知识点2:
注意使用这个api,需要提前设置label控件的大小,否则默认情况1。
lv_label_set_long_mode(label, LV_LABEL_LONG_...);
有以下几种模式:
@@补充知识点:
在label输出的文字中怎么实现换行?
很简单,在输出的文本中,想要换行的位置加上\n即可。
例如: lv_label_set_text(label,"hello world!\n lvgl");
到这里,lvgl 的label控件的知识点基本上就到此为止了。
效果演示:
####创建标签部件
####直接设置文本
####格式化显示文本
####设置背景颜色
####设置字体大小
####设置文本颜色
####长字符多种模式显示