0
点赞
收藏
分享

微信扫一扫

littlevgl之btnm 按钮阵列控件


littlevgl之btnm 按钮阵列控件_java

/* 定义 btnm 控件的 map,注意使用全局定义或者 static */
static const uint8_t *btnm_map[] = { "1", "#FF0000 Red#", "3", "\n", "4", "5", "6", "\n", "7", "8", "9", "\n", "*", "0", "# ", "\n", "OK", "Space", "Cancel", "" };



lv_obj_t *label_btnm1;
char label_buf[1024]={0};
static void btnm1_event_cb(lv_obj_t * obj, lv_event_t event)
{

switch (event)
{
case LV_EVENT_RELEASED:
if (lv_btnm_get_active_btn(obj) == 14)
{
memset(label_buf,0,sizeof(label_buf));
}
else
{
if(lv_btnm_get_active_btn(obj)<14)
{
if (strlen(label_buf) <= (sizeof(label_buf)-10))
{
strcat(label_buf, lv_btnm_get_active_btn_text(obj));
}
}
}
lv_label_set_text(label_btnm1,label_buf);
//printf("%d\n", lv_btnm_get_active_btn(obj));
//printf("%s\n",lv_btnm_get_active_btn_text(obj));
break;
default:
break;
}
}
void demo_create(void)
{


lv_obj_t *scr = lv_disp_get_scr_act(NULL); /* 获取当前屏幕 */


lv_obj_t *btnm1 = lv_btnm_create(scr, NULL); /* 创建 btnm 控件 */
lv_btnm_set_map(btnm1, btnm_map); /* 设置 btnm 控件的 map,控件会根据 map 设置按 钮的分布 */
lv_obj_set_size(btnm1, LV_HOR_RES, LV_VER_RES / 2); /* 设置控件的尺寸 */
lv_obj_align(btnm1, NULL, LV_ALIGN_IN_BOTTOM_MID, 0, 0); /* 设置控件位置 */
lv_btnm_set_btn_width(btnm1, 1, 2); /* 设置按钮的宽度 */
// lv_btnm_set_one_toggle(btnm1,true);
// lv_btnm_set_btn_ctrl(btnm1,0,LV_BTNM_CTRL_HIDDEN);
lv_btnm_set_recolor(btnm1,true);

lv_obj_set_event_cb(btnm1, btnm1_event_cb); /* 设置控件事件回调函数 */

label_btnm1 = lv_label_create(scr, NULL); /* 创建 label 控件 */
lv_label_set_text(label_btnm1, label_buf); /* 设置 label 文本 */
lv_label_set_long_mode(label_btnm1, LV_LABEL_LONG_BREAK); /* 设置长文本模式为自动换行 */
lv_obj_set_width(label_btnm1, LV_HOR_RES); /* 设置控件宽度 */
// lv_obj_set_style(label_btnm1, &style_cn_32); /* 设置中文字体的样式 */
lv_obj_align(label_btnm1, NULL, LV_ALIGN_IN_TOP_LEFT, 0, 0); /* 设置位置 */



}


举报

相关推荐

0 条评论