lv_label_set_array_text在LVGL8.3里换成了什么
时间: 2024-10-16 18:11:46 浏览: 33
LVGL配置文件详解lv_conf.h(V7.9.1).pdf
5星 · 资源好评率100%
在LVGL 8.3版本之后,`lv_label_set_array_text`这个函数已经被弃用了。取而代之的是使用数组的方式直接初始化`lv_label`实例的文本。如果你之前是在一个数组中存储多个字符串,你可以这样做:
```c
LV_LABEL *label = lv_label_create(lv_scr_act(), NULL);
char texts[] = {"文本1", "文本2", "文本3", ...}; // 根据实际需要填充
// 获取标签的文本区域
const LV_STYLE_T *style = &lv_style_label_default;
LV.area_t text_area = {0};
lv_obj_get_style_textarea(&text_area, label, style);
// 将数组元素设置到文本区域
for (size_t i = 0; i < sizeof(texts)/sizeof(texts[0]); i++) {
lv_label_set_text(label, texts[i]);
lv_label_set_pos(label, /* x */ , /* y */ + (i+1) * text_area.size.h); // 可以根据需要调整位置
}
```
这里的关键在于,你不再通过单个的`set_text`调用,而是遍历数组并在每个迭代中更新标签的文本。记得根据布局需求调整文字的位置。
阅读全文