lvgl 按钮文字
时间: 2025-04-07 19:12:11 浏览: 35
### 如何在 LVGL 中设置或修改按钮上的文字
在 LVGL 中,可以通过 API 函数来设置或修改按钮上的文字。以下是具体方法:
#### 使用 `lv_btn_set_style()` 和 `lv_label_set_text()`
LVGL 的按钮组件通常会包含一个标签(Label),用于显示按钮的文字内容。要更改按钮上的文字,可以先通过 `lv_obj_get_child()` 获取按钮中的子对象(即 Label),然后再调用 `lv_label_set_text()` 设置新的文本[^5]。
```c
// 创建一个按钮
lv_obj_t * btn = lv_btn_create(lv_scr_act());
// 为按钮添加一个标签
lv_obj_t * label = lv_label_create(btn);
lv_label_set_text(label, "Original Text");
// 修改按钮上的文字
lv_label_set_text(label, "Updated Text");
```
上述代码展示了如何创建一个带有初始文本的按钮,并随后更新其文字内容。
---
#### 使用样式和主题自定义按钮文字
除了直接设置文字外,还可以通过样式调整字体大小、颜色等属性。例如,使用 `lv_style_t` 定义一个新的样式,并应用到按钮上[^6]。
```c
static lv_style_t style;
lv_style_init(&style);
lv_style_set_text_color(&style, lv_palette_main(LV_PALETTE_BLUE));
lv_style_set_text_font(&style, &lv_font_montserrat_18);
lv_obj_add_style(btn, &style, 0);
```
以上代码片段设置了按钮文字的颜色为蓝色,并指定了 Montserrat 字体,字号为 18。
---
#### 动态更新按钮状态下的文字
如果希望根据按钮的状态动态改变文字,可以监听事件回调函数,在不同状态下重新设置文字[^7]。
```c
void event_handler(lv_event_t * e) {
lv_event_code_t code = lv_event_get_code(e);
lv_obj_t * obj = lv_event_get_target(e);
if (code == LV_EVENT_PRESSED) {
lv_label_set_text(obj, "Pressed!");
} else if (code == LV_EVENT_RELEASED) {
lv_label_set_text(obj, "Released.");
}
}
lv_obj_add_event_cb(btn, event_handler, LV_EVENT_ALL, NULL);
```
此示例实现了当按钮被按下或释放时分别显示不同的文字效果。
---
### 总结
- 调整按钮文字的核心在于操作按钮内的子对象——标签。
- 可以利用 `lv_label_set_text()` 方法快速实现文字替换功能。
- 如果涉及更复杂的交互逻辑,则需结合事件机制完成动态变化需求。
阅读全文
相关推荐


















