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);
相关推荐
Freak嵌入式14 小时前
LVGL基础知识和概念:视觉样式与资源系统
ide·驱动开发·嵌入式·lvgl·micropython·upypi
禅口魔心1 天前
KelpBar 智慧屏项目学习 —— 简单的修改
lvgl·嵌入式开发·kelpbar
养一回月亮!7 天前
STM32F407VET6驱动1.8寸TFT LCD移植LVGL,实现矩阵按键控制UI
stm32·单片机·lvgl
嵌入式科普11 天前
嵌入式科普(46)LVGL Pro与瑞萨e2studio集成免费商用指南
lvgl·renesas
特立独行的猫a15 天前
OpenHarmony海思WS63星闪平台:LVGL UI框架底层显示驱动移植指南
ui·lvgl·移植·openharmony·驱动·ws63
特立独行的猫a15 天前
OpenHarmony海思WS63星闪平台:LVGL 9 + LittleFS:字库文件按需流式加载,减少内存占用的实践笔记
lvgl·openharmony·海思·littlefs·流式加载·ws63·hi3863
Hello_Embed25 天前
LVGL 入门(一):环境搭建与源码获取
笔记·stm32·单片机·嵌入式·lvgl
云山雾村2 个月前
STM32+外部SDRAM提升LVGL运行效率的完整示例
lvgl
人间打气筒(Ada)2 个月前
Kubernetes核心技术-namespace & label
云原生·kubernetes·云计算·k8s·devops·namespace·label
摆摊的豆丁2 个月前
LVGL Cortex-A7 优化完整指南
lvgl