LVGL显示中文汉字【看这一篇就够了】

最近在搞LVGL的显示,我这里用的是ESP32-S3+一块1.14寸的屏幕显示。移植的LVGL官方库为8.2.0。遇到一个lable显示中文时,却什么都不显示。最后查阅一番资料才实现的,实现效果如图:
在这里插入图片描述

话不多少,直接开搞:
总结起来就一句话:首先获取一个字体文件,然后利用字体转化器得到LVGL需要的字库即可。

  1. 第一步,获取字体文件:
    百问网,选择一个字体,比如我选择的:
    在这里插入图片描述
    下载下来之后解压。
  2. 打开LVGL字体转换器:https://lvgl.io/tools/fontconverter。
    在这里插入图片描述
    Bpp选择的越大,显示的字体越好看,但是也越占硬件资源,依情况而选就可以。
    在这里插入图片描述
    选择文件就选择刚刚下载的字体文件,然后Symbols中填入你要显示的字就可以了。点击convert。会生成一个.c文件,放入你的项目中即可。
  3. 代码改动:设置lable时:
    在这里插入图片描述
    需要注意:
    这句声明必须加,不然会报错,参数就是.c文件的文件名。
LV_FONT_DECLARE(lv_font_Chinese_siyun_blod);

最后,编译烧录就可以了。

  • 19
    点赞
  • 59
    收藏
    觉得还不错? 一键收藏
  • 7
    评论
### 回答1: 要在 LVGL显示一个 label,需要执行以下步骤: 1. 创建一个 label 对象:`lv_obj_t *label = lv_label_create(lv_scr_act(), NULL);` 2. 设置 label 的文本内容:`lv_label_set_text(label, "Hello World");` 3. 设置 label 的位置:`lv_obj_set_pos(label, x, y);` 4. 如果需要,还可以设置 label 的其他属性,例如字体、文本对齐方式等。 5. 最后,调用 `lv_obj_refresh_style(label);` 更新 label 的显示。 以上代码仅供参考,具体的实现可能因 LVGL 版本、编程语言等因素而有所不同。 ### 回答2: LVGL是一个用于嵌入式图形用户界面的开源图形库。要在LVGL显示一个label,需要按照以下步骤进行操作: 1. 首先,创建一个屏幕对象,以便在屏幕上显示label。可以使用lv_scr_act()函数来获取当前活动的屏幕对象。 2. 创建一个label对象并设置其属性。可以使用lv_label_create()函数创建一个label对象,并使用lv_obj_set_style()函数设置label的样式和风格。例如,可以设置label的文本、字体、颜色、对齐方式等。 3. 设置label的文本内容。使用lv_label_set_text()函数来设置label的文本内容。 4. 添加label到屏幕上。使用lv_obj_set_pos()函数来设置label在屏幕上的位置,并使用lv_obj_set_parent()函数将label添加到屏幕对象上。 5. 更新显示。使用lv_task_handler()函数来执行系统级别的刷新操作,将label更新到屏幕上。 以下是一个简单的示例代码,演示如何在LVGL显示一个label: ```c #include "lvgl.h" void lv_ex_label() { lv_obj_t *scr = lv_scr_act(); //获取当前活动的屏幕对象 lv_obj_t *label = lv_label_create(scr, NULL); //创建一个label对象 lv_label_set_text(label, "Hello LVGL!"); //设置label的文本内容 lv_obj_set_pos(label, 50, 50); //设置label在屏幕上的位置 lv_task_handler(); //更新显示 } int main(void) { lv_init(); //初始化LVGL //其他初始化代码... lv_ex_label(); //显示label //其他代码... while (1) { //其他循环处理代码... lv_task_handler(); //更新显示 } return 0; } ``` 通过上述步骤,可以在LVGL中简单地显示一个label,并根据需求自定义label的样式和位置。 ### 回答3: 为了在LVGL显示一个label,我们需要按照以下步骤进行操作: 1. 首先,我们需要创建一个容器,用于放置我们的label。我们可以使用`lv_cont_create()`函数来创建容器,并使用`lv_scr_act()`函数将其添加到活动屏幕上。 ```c lv_obj_t * container = lv_cont_create(lv_scr_act(), NULL); ``` 2. 接下来,我们需要创建一个label,并将其添加到容器中。我们可以使用`lv_label_create()`函数创建label,并使用`lv_cont_add()`函数将其添加到容器中。可以使用`lv_label_set_text()`函数来设置label的文本内容。 ```c lv_obj_t * label = lv_label_create(container, NULL); lv_label_set_text(label, "Hello, LVGL!"); ``` 3. 最后,我们需要使用`lv_obj_align()`函数将label在容器中居中对齐。可以设置参数为`NULL`,表示将label相对于父容器居中对齐。 ```c lv_obj_align(label, container, LV_ALIGN_CENTER, 0, 0); ``` 通过上述步骤,我们就可以在LVGL显示一个label了。为了使其显示出来,还需要在LVGL的事件循环中调用`lv_task_handler()`函数。完整的代码可以参考以下示例: ```c #include <lvgl.h> void main(void) { // 初始化LVGL lv_init(); // 创建一个异步屏幕 lv_disp_drv_t disp_drv; lv_disp_drv_init(&disp_drv); disp_drv.flush_cb = ...; // 设置把buffer中的内容刷到屏幕上的回调函数 lv_disp_drv_register(&disp_drv); // 创建一个容器 lv_obj_t * container = lv_cont_create(lv_scr_act(), NULL); // 创建一个label lv_obj_t * label = lv_label_create(container, NULL); lv_label_set_text(label, "Hello, LVGL!"); // 将label在容器中居中对齐 lv_obj_align(label, container, LV_ALIGN_CENTER, 0, 0); while (1) { // 处理LVGL的事件循环 lv_task_handler(); } } ``` 通过以上步骤,我们可以在LVGL中成功显示一个label,并将其居中显示在容器中。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值