LVGL--label标签控件

学习网上开源教程,随手记录,如有纰漏,希望大佬们不吝赐教。

本文是学习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控件的知识点基本上就到此为止了。

 效果演示:

  ####创建标签部件     

####直接设置文本

####格式化显示文本

####设置背景颜色 

####设置字体大小

####设置文本颜色

####长字符多种模式显示 

  • 42
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
LVGL 是一个开源的 GUI 库,提供了多种现成的件,如按钮、标签、列表等。如果你需要自定义件,可以使用 LVGL 提供的绘图和事件处理接口实现。 下面是一个简单的示例,演示如何在 LVGL 中创建自定义件: ```c // 自定义件的绘制函数 static void draw_custom_control(lv_obj_t * obj, const lv_area_t * clip_area) { // 绘制件的背景和边框 lv_draw_rect(&obj->coords, clip_area, LV_COLOR_WHITE, LV_COLOR_BLACK, LV_DRAW_BORDER | LV_DRAW_FULL_COVER); // 绘制件的内容 lv_draw_label(&obj->coords, clip_area, LV_COLOR_BLACK, "Custom Control", NULL, LV_LABEL_ALIGN_CENTER); } // 自定义件的事件处理函数 static bool custom_control_event_handler(lv_obj_t * obj, lv_event_t event) { if (event == LV_EVENT_CLICKED) { // 处理件被点击的事件 lv_obj_set_style_local_bg_color(obj, LV_OBJ_PART_MAIN, LV_STATE_DEFAULT, LV_COLOR_RED); } return false; } // 创建自定义件 lv_obj_t * custom_control_create(lv_obj_t * parent) { lv_obj_t * obj = lv_obj_create(parent, NULL); // 设置件的大小和位置 lv_obj_set_size(obj, 100, 50); lv_obj_set_pos(obj, 50, 50); // 设置件的绘制函数和事件处理函数 lv_obj_set_draw_func(obj, draw_custom_control); lv_obj_set_event_cb(obj, custom_control_event_handler); return obj; } ``` 在上面的示例中,我们创建了一个名为 `custom_control` 的自定义件。`draw_custom_control` 函数用于绘制件,`custom_control_event_handler` 函数用于处理件的事件。在 `custom_control_create` 函数中,我们创建了一个 LVGL 对象,并设置了它的大小、位置、绘制函数和事件处理函数。最后,我们将对象返回给调用者。 使用上面的代码,你可以创建自己的 LVGL 件并为其添加功能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值