LVGL按钮查询单向链表内容
时间: 2025-06-16 21:16:37 浏览: 18
### 在LVGL框架中实现按钮查询单向链表内容的示例代码
在LVGL框架中,可以通过创建一个按钮并绑定点击事件来实现查询单向链表内容的功能。以下是一个完整的示例代码,展示了如何在LVGL中实现这一功能[^1]。
```c
#include "lvgl/lvgl.h"
#include <stdio.h>
// 定义单向链表节点结构
typedef struct Node {
int data;
struct Node* next;
} Node;
// 全局变量:链表头指针
Node* head = NULL;
// 初始化链表
void init_list() {
head = (Node*)malloc(sizeof(Node));
head->data = 1;
head->next = (Node*)malloc(sizeof(Node));
head->next->data = 2;
head->next->next = NULL;
}
// 查询链表内容并打印
void query_list_handler(lv_obj_t* btn) {
Node* current = head;
printf("Chain List Content: ");
while (current != NULL) {
printf("%d ", current->data);
current = current->next;
}
printf("\n");
}
// 创建按钮并绑定查询事件
void create_button(lv_obj_t* parent) {
lv_obj_t* button = lv_btn_create(parent); // 创建按钮
lv_obj_set_size(button, 150, 50); // 设置按钮大小
lv_obj_align(button, LV_ALIGN_CENTER, 0, 0); // 设置按钮位置
lv_obj_t* label = lv_label_create(button); // 创建按钮上的标签
lv_label_set_text(label, "Query List"); // 设置标签文本
// 绑定按钮点击事件
lv_obj_add_event_cb(button, [](lv_event_t* e) {
query_list_handler(lv_event_get_target(e)); // 调用查询链表内容的函数
}, LV_EVENT_CLICKED, NULL);
}
// 初始化LVGL和链表
void setup() {
lv_init(); // 初始化LVGL
init_list(); // 初始化链表
lv_obj_t* screen = lv_scr_act(); // 获取当前屏幕
create_button(screen); // 创建按钮
}
int main() {
setup(); // 初始化
while (1) {
lv_task_handler(); // 处理LVGL任务
}
return 0;
}
```
### 代码说明
- **单向链表定义**:定义了一个`Node`结构体用于表示链表节点,并初始化了一个简单的链表[^1]。
- **查询链表内容**:通过`query_list_handler`函数遍历链表并将节点数据打印到控制台。
- **LVGL按钮创建**:使用`lv_btn_create`创建按钮,并通过`lv_obj_add_event_cb`绑定点击事件。
- **事件处理**:当按钮被点击时,调用`query_list_handler`函数查询并打印链表内容[^1]。
### 注意事项
确保在实际项目中正确初始化LVGL框架,并根据需要调整链表内容和按钮样式[^1]。
阅读全文
相关推荐












