【LVGL-键盘部件,实体按键控制】

LVGL-二维码库

  • [■ LVGL-键盘部件](#■ LVGL-键盘部件)
    • [■ 示例一:键盘弹窗提示](#■ 示例一:键盘弹窗提示)
    • [■ 示例二:设置键盘模式](#■ 示例二:设置键盘模式)
    • [■ 综合示例:](#■ 综合示例:)
  • [■ LVGL-实体按键控制](#■ LVGL-实体按键控制)
    • [■ 简介](#■ 简介)

■ LVGL-键盘部件


■ 示例一:键盘弹窗提示

cpp 复制代码
lv_keyboard_set_popovers(kb,true);

■ 示例二:设置键盘模式

cpp 复制代码
lv_keyboard_set_mode(kb,KEYBOARD_MODE_NUMBER); //数字键盘模式


■ 综合示例:

cpp 复制代码
/**
 * @brief  键盘事件回调
 * @param  *e :事件相关参数的集合,它包含了该事件的所有数据
 * @return 无
 */
static void keyboard_event_cb(lv_event_t *e)
{
    lv_event_code_t code = lv_event_get_code(e);                            /* 获取事件类型 */
    lv_obj_t *target = lv_event_get_target(e);                              /* 获取触发源 */

    if(code == LV_EVENT_VALUE_CHANGED)
    {
        uint16_t id = lv_btnmatrix_get_selected_btn(target);                /* 获取键盘按钮索引 */

        const char *txt = lv_btnmatrix_get_btn_text(target, id);            /* 获取按钮文本 */

        if(strcmp(txt, LV_SYMBOL_KEYBOARD) == 0)                            /* 判断是不是键盘图标被按下 */
        {
            if(lv_keyboard_get_mode(target) == LV_KEYBOARD_MODE_NUMBER)     /* 获取当前键盘模式,判断是否为数字模式 */
            {
                lv_keyboard_set_mode(target, LV_KEYBOARD_MODE_TEXT_LOWER);  /* 如果是数字模式,则切换为小写字母模式 */
            }
            else
            {
                lv_keyboard_set_mode(target, LV_KEYBOARD_MODE_NUMBER);      /* 不是数字模式,则切换为数字模式 */
            }
        }
    }
}

/**
 * @brief  键盘实例
 * @param  无
 * @return 无
 */
static void lv_example_keyboard(void)
{
    /* 文本框 */
    lv_obj_t *textarea = lv_textarea_create(lv_scr_act());                              /* 创建文本框 */
    lv_obj_set_size(textarea, scr_act_width() - 10, scr_act_height() / 2 - 10);         /* 设置大小 */
    lv_obj_align(textarea, LV_ALIGN_TOP_MID, 0, 0);                                     /* 设置位置 */
    
    /* 键盘 */
    lv_obj_t *keyboard = lv_keyboard_create(lv_scr_act());                              /* 创建键盘 */
    lv_keyboard_set_textarea(keyboard, textarea);                                       /* 关联键盘和文本框 */
    lv_obj_add_event_cb(keyboard, keyboard_event_cb, LV_EVENT_VALUE_CHANGED, NULL);     /* 设置键盘事件回调 */
}

■ LVGL-实体按键控制

■ 简介




相关推荐
努力努力再努力wz1 小时前
【MySQL进阶系列】一文打通事务机制:从锁、Undo Log 到 MVCC 与隔离级别
c语言·数据结构·数据库·c++·mysql·算法·github
薇茗1 小时前
【初阶数据结构】 左右逢源的分支诗律 二叉树1
c语言·数据结构·算法
eDEs OLDE2 小时前
CC++链接数据库(MySQL)超级详细指南
c语言·数据库·c++
广州山泉婚姻2 小时前
C语言三种基本程序结构详解
c语言·开发语言
上弦月-编程2 小时前
【C语言】函数栈帧的创建与销毁(底层原理)
c语言·开发语言
Hhy_11073 小时前
【从零开始学习数据结构 ④】:栈 ——后进先出的艺术
c语言·数据结构·学习·visual studio
爱编码的小八嘎3 小时前
c语言完美演绎9-17
c语言
广州山泉婚姻3 小时前
C++ STL Vector 入门与实战全攻略
c语言·c++
我不是懒洋洋4 小时前
【数据结构】排序算法(直接插入排序、希尔排序、选择排序、堆排序、冒泡排序、快速排序、归并排序、计数排序)
c语言·数据结构·c++·经验分享·算法·排序算法
辛苦才能4 小时前
数据结构--排序--插入排序(C语言,重点排序面试和比赛都会考察)
c语言·数据结构·面试