LVGL9.5 设置 label 长文本自动换行

说明

  • LVGL 9.5 版本(当前最新)

  • label 作为文本显示,可能内容会很长,需要设置 label 文本过长后自动换行的功能

  • 设置 lv_label_set_long_mode(label, LV_LABEL_LONG_MODE_WRAP); 后,发现 label 文本没有自动换行,有了滚动条,如下

自动换行

  • 解决方法:还需要设置 label 的宽度 width

  • 比如 lv_obj_set_width(label, 500);

示例如下

c 复制代码
/**
 * Load a font with FreeType
 */
void lv_example_freetype_1(void)
{
    /*Create a font*/
    lv_font_t * font = lv_freetype_font_create(/* "D:../lvgl/examples/libs/freetype/Lato-Regular.ttf", */
                                    "D:../apps/fonts/HYQIHEI-55J.ttf",
                                               LV_FREETYPE_FONT_RENDER_MODE_BITMAP,
                                               24,
                                               LV_FREETYPE_FONT_STYLE_NORMAL);

    if(!font) {
        LV_LOG_ERROR("freetype font create failed.");
        return;
    }

    /*Create style with the new font*/
    static lv_style_t style;
    lv_style_init(&style);
    lv_style_set_text_font(&style, font);
    lv_style_set_text_align(&style, LV_TEXT_ALIGN_CENTER);

    /*Create a label with the new style*/
    lv_obj_t * label = lv_label_create(lv_screen_active());
    lv_obj_add_style(label, &style, 0);
    lv_label_set_text(label, "大家好!!Hello world!I'm a font created with FreeType!"
        "lv_log_register_print_cb 可以设置 LVGL 的打印回调函数!");
    lv_label_set_long_mode(label, LV_LABEL_LONG_MODE_WRAP);
    lv_obj_set_width(label, 500);
    lv_obj_center(label);
}

显示效果

小结

  • 先设置好 label 的宽度 width,再设置自动换行(LV_LABEL_LONG_MODE_WRAP)即可
c 复制代码
    lv_label_set_long_mode(label, LV_LABEL_LONG_MODE_WRAP);
    lv_obj_set_width(label, 500);
相关推荐
云山雾村8 天前
STM32+外部SDRAM提升LVGL运行效率的完整示例
lvgl
人间打气筒(Ada)9 天前
Kubernetes核心技术-namespace & label
云原生·kubernetes·云计算·k8s·devops·namespace·label
摆摊的豆丁12 天前
LVGL Cortex-A7 优化完整指南
lvgl
熊猫_豆豆20 天前
LVGL8制作大学生校园课程表(课表、成绩、计时提醒功能)界面
课程设计·lvgl·美工·大学生课表
张世争1 个月前
Visual Studio 2022 手动搭建 PC 端 lvgl 的调试环境
lvgl·visual studio·simulator
搞全栈小苏1 个月前
嵌入式之 LVGL 的切换页面研究:杜绝内存泄漏(单片机与 Linux 平台)(链表与多进程方式)
linux·单片机·链表·lvgl
hqwest2 个月前
码上通QT实战04--主窗体布局
开发语言·css·qt·布局·widget·layout·label
xiaohai@Linux2 个月前
LVGL显示gif动图导致MCU进入HardFault_Handler问题(已解决!)
单片机·lvgl
搞全栈小苏2 个月前
LVGL与Qt深度对比分析:轻量与全能的技术博弈
qt·lvgl