结合LVGL和LVGL的中文手册,构建一个公交充值卡的界面,有两个按钮,一个按钮是在线充值,另外一个按钮是圈存,进入两个按钮可以弹出输入的键盘
时间: 2024-03-02 16:51:22 浏览: 110
在ESP8266上移植了lvgl库,并且有一个时钟界面显示,支持GPIO模拟的SPI屏幕
5星 · 资源好评率100%
好的,我了解了您的要求。首先,需要在LVGL中创建一个屏幕,然后添加两个按钮。按钮的样式可以自定义,可以设置为长方形、圆形、带图标等。接下来,需要为按钮添加回调函数,以便在用户点击按钮时执行相应的操作。在这个例子中,回调函数应该是弹出键盘,以便用户输入信息。
以下是一个实现这个功能的示例代码:
```c
#include <lvgl/lvgl.h>
#include <lv_examples/lv_examples.h>
/* 回调函数,用于弹出键盘 */
static void btn_click_action(lv_obj_t * obj, lv_event_t event)
{
if(event == LV_EVENT_CLICKED) {
lv_keyboard_def_event_cb(lv_obj_get_parent(obj), LV_EVENT_CLICKED);
}
}
void lv_ex_get_started_1(void)
{
/* 创建一个屏幕 */
lv_obj_t * scr = lv_cont_create(NULL, NULL);
lv_disp_load_scr(scr);
/* 创建在线充值按钮 */
lv_obj_t * btn1 = lv_btn_create(scr, NULL);
lv_obj_set_pos(btn1, 50, 50);
lv_obj_set_size(btn1, 100, 50);
lv_obj_t * label1 = lv_label_create(btn1, NULL);
lv_label_set_text(label1, "在线充值");
lv_obj_set_event_cb(btn1, btn_click_action);
/* 创建圈存按钮 */
lv_obj_t * btn2 = lv_btn_create(scr, NULL);
lv_obj_set_pos(btn2, 50, 120);
lv_obj_set_size(btn2, 100, 50);
lv_obj_t * label2 = lv_label_create(btn2, NULL);
lv_label_set_text(label2, "圈 存");
lv_obj_set_event_cb(btn2, btn_click_action);
/* 创建键盘 */
lv_obj_t * kb = lv_keyboard_create(lv_scr_act(), NULL);
lv_obj_set_size(kb, LV_HOR_RES, LV_VER_RES / 2);
lv_obj_set_pos(kb, 0, LV_VER_RES / 2);
}
```
在这个示例中,我们使用`lv_cont_create`函数创建了一个屏幕容器,然后使用`lv_disp_load_scr`函数将其加载到显示器上。接下来,我们使用`lv_btn_create`函数创建了两个按钮,并使用`lv_label_create`函数在按钮上添加了文本标签。然后,我们为按钮添加了回调函数`btn_click_action`,该函数会在按钮被点击时执行。在回调函数中,我们使用`lv_keyboard_def_event_cb`函数弹出了键盘。
最后,我们使用`lv_keyboard_create`函数创建了一个键盘,并将其添加到屏幕上。
需要注意的是,以上代码中的键盘是默认的键盘,不带中文输入法。如果需要添加中文输入法,需要使用LVGL提供的中文输入法插件。具体使用方法可以参考LVGL的中文手册。
阅读全文