如何创建标签部件以及设置文本?
void my_gui(void)
{
lv_obj_t *label =lv_label_create(lv_scr_act());//直接设置文本,存储文本的内存动态分配 :
//lv_label_set_text(label,"heel ");
//文本不存储在动态内存,而是在指定的缓冲区中(慎用)://lv_label_set_text_static( label,"hallo" );
lv_label_set_text_fmt(label,"value: %d",50);//格式化显示文本,类似printf :
如何改变文本的样式?
知识点1:设置文本样式
① 背景颜色:lv_obj_set_style_bg_color( label, lv_color_hex(0xffe1d4), LV_STATE_DEFAULT );
② 字体大小: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 );
void my_gui(void)
{
lv_obj_t *label =lv_label_create(lv_scr_act());
//lv_label_set_text(label,"heel ");
lv_label_set_text_fmt(label,"value: %d",50);
lv_obj_set_style_bg_color( label, lv_color_hex(0xffe1d4), LV_STATE_DEFAULT );
lv_obj_set_style_bg_opa(label,100,LV_STATE_DEFAULT);
lv_obj_set_style_text_font( label, &lv_font_montserrat_30, LV_STATE_DEFAULT );//lv_font_montserrat_30需要把lv_config lv_font_montserrat_30设置为1
lv_obj_set_style_text_color( label, lv_color_hex(0x5084db), LV_STATE_DEFAULT );
知识点2:设置个别文本的字体颜色
lv_label_set_recolor( label, true ); /* 开启重新着色功能 /
lv_label_set_text( label, "hallo #ff0000 lvgl# " ); / 单独设置颜色 */
void my_gui(void)
{
lv_obj_t *label =lv_label_create(lv_scr_act());
lv_label_set_recolor( label, true );
lv_label_set_text( label, "lvgl #ff0000 lvgl# " );
当文本长度超过部件大小的时候怎么显示?
知识点1:
默认情况下,如果没有限定标签部件大小,那它的大小自动扩展为文本大小。
知识点2:长文本模式
enum {
LV_LABEL_LONG_WRAP, /* 默认模式, 如果部件大小已固定,超出的文本将被剪切 /
LV_LABEL_LONG_DOT, / 将 label 右下角的最后 3 个字符替换为点… /
LV_LABEL_LONG_SCROLL, / 来回滚动 /
LV_LABEL_LONG_SCROLL_CIRCULAR, / 循环滚动 /
LV_LABEL_LONG_CLIP, / 直接剪切掉部件外面的文本部分 */
};
void my_gui(void)
{
lv_obj_t *label =lv_label_create(lv_scr_act());
lv_label_set_text(label,"heel lvgl lvgllvgl \n lvgllvgllvgllvgllvgllvgllvgl"); // \n用来换行
lv_obj_set_size(label,100,50);
lv_label_set_long_mode(label, LV_LABEL_LONG_SCROLL_CIRCULAR);