当前位置: 首页 > news >正文

网站建设的小结宁波seo在线优化方案公司

网站建设的小结,宁波seo在线优化方案公司,自动网站建设,快速网站排名汉狮公司在LVGL的List控件使用过程中#xff0c;虽然通过触摸按键选择item#xff0c;但是有些场景需要实体按键选取item#xff0c;但是LVGL 的V8.3中没有像Emwin那样有函数选择list item的函数。LVGL中List引入了Group的概念#xff0c;把列表项都添加到同一个group中。然后通过更…在LVGL的List控件使用过程中虽然通过触摸按键选择item但是有些场景需要实体按键选取item但是LVGL 的V8.3中没有像Emwin那样有函数选择list item的函数。LVGL中List引入了Group的概念把列表项都添加到同一个group中。然后通过更改group的焦点达到选择list item的作用。 #include LVGL/GUI_APP/lv_mainstart.h #include lvgl.h #include stdio.h #include ./BSP/KEY/key.h #define scr_act_width() lv_obj_get_width(lv_scr_act()) #define scr_act_height() lv_obj_get_height(lv_scr_act()) static lv_obj_t *list;              /* 定义列表 */ static lv_obj_t *list_label;        /* 定义标签 */ static const lv_font_t *font;       /* 定义字体 */ extern lv_indev_t * indev_keypad; lv_obj_t* BtnUp,*BtnDn, *label; lv_group_t * group; static void list_btn_event_cb(lv_event_t *e) { lv_obj_t *list_btn lv_event_get_target(e);                           lv_label_set_text(list_label, lv_list_get_btn_text(list, list_btn));     lv_obj_add_state(list_btn, LV_STATE_FOCUS_KEY);                   } 下面是另外的触摸按键的UP/Down实现选择list item 由于没有找到重新聚焦group的函数所以另辟蹊径在up/down的事件回调函数中下发实体按键事件中。 static void event_btn_handler(lv_event_t *e) { lv_obj_t* targetObj lv_event_get_target(e); if (targetObj BtnUp) { set_virl_key(KEY1_PRES); } if (targetObj BtnDn) { set_virl_key(KEY0_PRES); } } static void lv_example_list(void) { /* 根据屏幕大小设置字体 */ if (scr_act_width() 320) { font lv_font_montserrat_14; } else if (scr_act_width() 480) { font lv_font_montserrat_16; } else { font lv_font_montserrat_18; } /* 创建左侧矩形背景 */ lv_obj_t* obj_left lv_obj_create(lv_scr_act());                               /* 创建一个基础对象 */ lv_obj_set_width(obj_left, scr_act_width() * 0.7);                              /* 设置宽度 */ lv_obj_set_height(obj_left, scr_act_height() * 0.9);                            /* 设置高度 */ lv_obj_align(obj_left, LV_ALIGN_LEFT_MID, 5, 0);                                /* 设置位置 */ lv_obj_update_layout(obj_left);                                                 /* 手动更新物体的参数 */ /* 创建右侧矩形背景 */ lv_obj_t* obj_right lv_obj_create(lv_scr_act());                              /* 创建一个基础对象 */ lv_obj_set_width(obj_right, scr_act_width() - lv_obj_get_width(obj_left) - 15); /* 设置宽度 */ lv_obj_set_height(obj_right, lv_obj_get_height(obj_left));                      /* 设置高度 */ lv_obj_align_to(obj_right, obj_left, LV_ALIGN_OUT_RIGHT_MID, 5, 0);             /* 设置位置 */ lv_obj_update_layout(obj_right);                                                /* 手动更新物体的参数 */ /* 显示当前选项的文本内容 */ list_label lv_label_create(obj_right);                                        /* 创建标签 */ lv_obj_set_width(list_label, lv_obj_get_width(obj_right) - 13);                 /* 设置标签的宽度 */ lv_obj_align(list_label, LV_ALIGN_TOP_MID, 0, 5);                               /* 设置标签位置 */ lv_obj_update_layout(list_label);                                               /* 手动更新标签的参数 */ lv_obj_set_style_text_align(list_label, LV_TEXT_ALIGN_CENTER, LV_PART_MAIN);    /* 设置标签文本对齐方式 */ lv_label_set_text(list_label, New);                                           /* 设置标签文本 */ lv_obj_set_style_text_font(list_label, font, LV_PART_MAIN);                     /* 设置标签文本字体 */ // BtnUp lv_btn_create(obj_right); lv_obj_set_size(BtnUp, 100, 50); lv_obj_align(BtnUp, LV_ALIGN_TOP_RIGHT, -20, 100); // lv_obj_add_flag( BtnUp, LV_OBJ_FLAG_CHECKABLE );     lv_obj_add_event_cb(BtnUp, event_btn_handler,LV_EVENT_CLICKED,NULL); label lv_label_create(BtnUp);                 //创建label lv_label_set_text(label, Up);            //设置label的字内容 lv_obj_center(label);                          //居中对象 BtnDn lv_btn_create(obj_right); lv_obj_set_size(BtnDn, 100, 50); lv_obj_align(BtnDn, LV_ALIGN_BOTTOM_RIGHT, -20, -100); // lv_obj_add_flag( BtnDn, LV_OBJ_FLAG_CHECKABLE );     lv_obj_add_event_cb(BtnDn, event_btn_handler, LV_EVENT_CLICKED, NULL); label lv_label_create(BtnDn);                 //创建label lv_label_set_text(label, Down);            //设置label的字内容 lv_obj_center(label); /// /* 创建列表 */ list lv_list_create(obj_left);                                                /* 创建列表 */ lv_obj_set_width(list, lv_obj_get_width(obj_left) * 0.8);                       /* 设置列表宽度 */ lv_obj_set_height(list, lv_obj_get_height(obj_left) * 0.9);                     /* 设置列表高度 */ lv_obj_center(list);                                                            /* 设置列表的位置 */ lv_obj_set_style_text_font(list, font, LV_PART_MAIN);                           /* 设置字体 */ /* 为列表添加按钮 */ lv_obj_t* btn; group lv_group_create(); lv_indev_set_group(indev_keypad, group); lv_list_add_text(list, File);                                                 /* 添加列表文本 */ btn lv_list_add_btn(list, LV_SYMBOL_FILE, New);                             /* 添加按钮 */ lv_obj_add_event_cb(btn, list_btn_event_cb, LV_EVENT_CLICKED, NULL);            /* 添加按钮回调 */ lv_group_add_obj(group, btn); label lv_label_create(btn);                 //创建label lv_label_set_text(label, Down);            //设置label的字内容 lv_obj_center(label); btn lv_list_add_btn(list, LV_SYMBOL_DIRECTORY, Open);                       /* 添加按钮 */ lv_obj_add_event_cb(btn, list_btn_event_cb, LV_EVENT_CLICKED, NULL);            /* 添加按钮回调 */ lv_group_add_obj(group, btn); btn lv_list_add_btn(list, LV_SYMBOL_SAVE, Save);                            /* 添加按钮 */ lv_obj_add_event_cb(btn, list_btn_event_cb, LV_EVENT_CLICKED, NULL);            /* 添加按钮回调 */ lv_group_add_obj(group, btn); btn lv_list_add_btn(list, LV_SYMBOL_CLOSE, Delete);                         /* 添加按钮 */ lv_obj_add_event_cb(btn, list_btn_event_cb, LV_EVENT_CLICKED, NULL);            /* 添加按钮回调 */ lv_group_add_obj(group, btn); btn lv_list_add_btn(list, LV_SYMBOL_EDIT, Edit);                            /* 添加按钮 */ lv_obj_add_event_cb(btn, list_btn_event_cb, LV_EVENT_CLICKED, NULL);            /* 添加按钮回调 */ lv_group_add_obj(group, btn); lv_list_add_text(list, Connectivity);                                         /* 添加列表文本 */ btn lv_list_add_btn(list, LV_SYMBOL_BLUETOOTH, Bluetooth);                  /* 添加按钮 */ lv_obj_add_event_cb(btn, list_btn_event_cb, LV_EVENT_CLICKED, NULL);            /* 添加按钮回调 */ lv_group_add_obj(group, btn); btn lv_list_add_btn(list, LV_SYMBOL_GPS, Navigation);                       /* 添加按钮 */ lv_obj_add_event_cb(btn, list_btn_event_cb, LV_EVENT_CLICKED, NULL);            /* 添加按钮回调 */ lv_group_add_obj(group, btn); btn lv_list_add_btn(list, LV_SYMBOL_USB, USB);                              /* 添加按钮 */ lv_obj_add_event_cb(btn, list_btn_event_cb, LV_EVENT_CLICKED, NULL);            /* 添加按钮回调 */ lv_group_add_obj(group, btn); btn lv_list_add_btn(list, LV_SYMBOL_BATTERY_FULL, Battery);                 /* 添加按钮 */ lv_obj_add_event_cb(btn, list_btn_event_cb, LV_EVENT_CLICKED, NULL);            /* 添加按钮回调 */ lv_group_add_obj(group, btn); lv_list_add_text(list, Exit);                                                 /* 添加列表文本 */ btn lv_list_add_btn(list, LV_SYMBOL_OK, Apply);                             /* 添加按钮 */ lv_group_add_obj(group, btn); lv_obj_add_event_cb(btn, list_btn_event_cb, LV_EVENT_CLICKED, NULL);            /* 添加按钮回调 */ btn lv_list_add_btn(list, LV_SYMBOL_CLOSE, Close);                          /* 添加按钮 */ lv_obj_add_event_cb(btn, list_btn_event_cb, LV_EVENT_CLICKED, NULL);            /* 添加按钮回调 */ lv_group_add_obj(group, btn);      } 注意在添加实体按键group时需要注意变量的声明的先后顺序。在lv_port_indev_template.C中初始化实体按键后不能立即添加组除非需要被添加的obj已经声明赋值否则就会错误死机。在例程中的 /* 接着你需要用 lv_group_t * group lv_group_create() 来创建组 * 用 lv_group_add_obj(group, obj) 往组中添加物体 * 并将这个输入设备分配到组中以导航到它: * lv_indev_set_group(indev_keypad, group); */ 当把注释取消后就是死机无法找到原因后来才发现obj还没有声明赋值 void lv_mainstart(void) { lv_example_list(); } 在key.c中添加按键和虚拟触摸按键的处理。 void set_virl_key(uint8_t key) {     vir_key key; } uint8_t key_scan(uint8_t mode) {     static uint8_t key_up 1;  /* 按键按松开标志 */     uint8_t keyval 0; if (mode) key_up 1;       /* 支持连按 */ if (key_up (KEY0 0 || KEY1 0 || KEY2 0 || WK_UP 1))  /* 按键松开标志为1, 且有任意一个按键按下了 */     {         delay_ms(10);           /* 去抖动 */         key_up 0; if (KEY0 0)  keyval KEY0_PRES; if (KEY1 0)  keyval KEY1_PRES; if (KEY2 0)  keyval KEY2_PRES; if (WK_UP 1) keyval WKUP_PRES;     }     else if(vir_key!0)     {         keyval vir_key;         vir_key 0;     }     else if (KEY0 1 KEY1 1 KEY2 1 WK_UP 0)         /* 没有任何按键按下, 标记按键松开 */     {         key_up 1;     }     return keyval;              /* 返回键值 */ }
http://www.hkea.cn/news/14341436/

相关文章:

  • ui做网站实例网站站欣赏
  • 网站建设硬件条件网站建设能赚钱吗
  • 有没有帮忙做推广的网站建设小说网站费用
  • dede网站源码广州注册公司需要什么资料
  • 动态视频网站开发网站数据分析平台
  • 网站快照前显示中文怎么做的济南建设信息网站
  • 湖南英文网站建设seo是什么意思电商
  • 网站开发是什么费用大连网站建设是什么
  • 自己有主机怎么做论坛网站c2c电子商务网站定制开发
  • 游戏网站建设的策划方案seo难不难学
  • 网站开发拥有权约定公司网站开发立项文档
  • 开封网站建设公司排名企业做网站的费用如何科目
  • 公司网站百度小程序开发什么是门户网站建设平台
  • 做网站费用怎么付大气的广告公司名称
  • 建设银行秋招网站黄岛英文网站建设
  • 优购物官方网站订单查询滨海新区网站建设
  • wordpress 获取相关文章大众点评seo关键词优化
  • 网站优化心得微信公众平台小程序管理在哪里
  • 北京恒伟网站建设做网站需要注意多少页
  • 该如何与网站设计公司沟通如何制作一网站
  • vue做直播网站官方网站做背景墙厂家
  • 怎么上传网站到ftp百度店面定位怎么申请
  • 泰安网站建设入门推荐网站专题页是什么
  • 网站前台后台打开慢百度竞价怎么做开户需要多少钱
  • 网站建设找云尚网络网站策划书内容
  • 自己做图片的网站链接织梦网站安装教程
  • wordpress首页没有ssl优化wordpress调用文章函数
  • 湖南it网站建设mxtiawordpress显示股价
  • 做网站没有固定电话wordpress自动注册
  • 静态网站管理系统二次开发需要源代码吗