键盘部件(lv_keyboard)
键盘部件可用于输入文本内容,其本质上就是一个特殊的按钮矩阵。
键盘部件组成部分:
- 主体(LV_PART_MAIN)
- 按钮(LV_PART_ITEMS)
API函数
- 创建键盘部件
lv_obj_t *kb = lv_keyboard_create(parent);
- 关联文本框
lv_obj_t *ta = lv_textarea_create(lv_scr_act()); /* 创建文本区域部件 */
lv_keyboard_set_textarea(kb, ta); /* 关联键盘和文本区域部件 */
- 设置按键弹窗
lv_keyboard_set_popovers(kb, true); /* 允许按键弹窗提示 */
- 设置键盘模式
lv_keyboard_set_mode(kb, LV_KEYBOARD_MODE_NUMBER); /* 数字键盘模式 */
图片按钮部件(lv_imgbtn)
图片按钮部件类似于按钮部件,不同的是,用户可以在其中设置图片。
图片按钮部件组成部分:
- 主体(LV_PART_MAIN)
API函数
- 创建图片按钮部件
lv_obj_t *imgbtn = lv_imgbtn_create(parent);
- 设置图片源、按钮大小
//使用前一定要声明图片源(全局)LV_IMG_DECLARE(img_bird);
//src_left/mid/right表示声明需要多少图片源?如果不需要参数填写NULL
lv_imgbtn_set_src(imgbtn, LV_IMGBTN_STATE_..., src_left, src_mid, src_right); /* 设置某个状态的图片源 */
/*
LV_IMGBTN_STATE_...说明图片按钮在什么状态时候才起作用
enum {
LV_IMGBTN_STATE_RELEASED,
LV_IMGBTN_STATE_PRESSED,
LV_IMGBTN_STATE_DISABLED,
LV_IMGBTN_STATE_CHECKED_RELEASED,
LV_IMGBTN_STATE_CHECKED_PRESSED,
LV_IMGBTN_STATE_CHECKED_DISABLED,
_LV_IMGBTN_STATE_NUM,
} lv_imgbtn_state_t;
*/
lv_obj_set_size(struct _lv_obj_t * obj, lv_coord_t w, lv_coord_t h); /* 设置图片按钮大小 */
- 设置按钮状态
lv_imgbtn_set_state(imgbtn, LV_IMGBTN_STATE_PRESSED); /* 设置按下状态 */
拓展知识点:如何显示带有透明度通道的图片?
- 准备一张带有透明度通道的图片
- 官方图片转换工具中,色彩格式选择:CF_TRUE_COLOR_ALPHA
- 声明图片并调用即可
选项卡部件(lv_tabview)
选项卡部件可以实现多页面切换,用户可以在不同的页面中添加内容。

选项卡部件组成部分:
- 主体(lv_obj)
- 按钮(lv_btnmatrix)
API函数
- 创建选项卡部件
![img]()
//LV_DIR_...设置的是选项卡按钮的位置,LV_DIR_TOP表示将选项卡按钮放在顶部
lv_obj_t *tabview = lv_tabview_create(parent, LV_DIR_..., tab_size);
- 添加选项卡
lv_obj_t *tab1 = lv_tabview_add_tab(tabview, "Tab 1");
lv_obj_t *tab2 = lv_tabview_add_tab(tabview, "Tab 2");
//!!!如果需要给选项卡添加信息,这需要使用其他部件完成,比如标签,此时选项卡就是标签的父对象,具体实现方法和效果需前往官网查看示例
- 设置当前选中的选项卡
//id: 索引号;
//anim_en: 是否开启动画
lv_tabview_set_act(lv_obj_t * obj, uint32_t id, lv_anim_enable_t anim_en); /* 索引从0开始 */
