查看原文
其他

超好用!虚拟键盘+中文输入——Air722金牛座大屏开发板LVGL控件

让万物互联更简单 合宙LuatOS 2023-05-17


大屏开发,一个Air722金牛座开发板就够了!

聚焦行业应用,助力快速开发——合宙基于Air722大屏模组已陆续推出农业大棚可视化DTU空调控制器智能电动车中控方案汽车充电桩自助售货机数据采集控制器UI参考等大屏应用解决方案。

本期特别介绍最新中文输入法控件,文末更多惊喜彩蛋!


1

金牛座LVGL中文输入法控件



Air722金牛座系列项目采用LVGL7.1作为开发用户界面程序的GUI框架,高度自定义页面,开发简便快捷。

金牛座LVGL中文输入法控件——lvgl.chs_keyboard是在lvgl.keyboard基础上编写的一个自定义控件,增加了支持中文输入法(拼音)的功能。虚拟键盘+中文输入法,进一步拓宽LVGL开发的控件类型,应用开发更便捷。




如何使用中文输入法控件






一、创建键盘

通过 lvgl.chs_keyboard_create可以创建键盘,如果不需要复制操作,那么第二个参数则为nil:

-- 创建键盘

chs_keyboard_obj = lvgl.chs_keyboard_create(cont,nil)


二、键盘模式

可以通过chs_keyboard_set_mode设置键盘模式和样式:

-- 设置键盘模式

lvgl.chs_keyboard_set_mode(chs_keyboard_obj,lvgl.CHSKB_MODE_QWERTY)


三、事件控制

想要演示键盘的输入效果,则需要创建一个文本框,然后通过 chs_keyboard_set_textarea 将键盘与文本框控件绑定:

-- 与输入框绑定

lvgl.chs_keyboard_set_textarea(keyboard,textarea)


设置文本框控件的一个点击回调函数,当文本框被点击的时候创建一个键盘,同时将键盘的输入绑定到文本框。当键盘点击确定或者取消时,就销毁键盘,在下次点击的时候重新创建。

示例代码如下:

手机横屏/上下滑动查看完整代码:

function lvgl_UiDesigner_DefOutCb(o,e,output) --关联函数
   if e==lvgl.EVENT_CLICKED then
       lvgl.obj_set_hidden(output,false)
       lvgl.chs_keyboard_set_textarea(output,o)
   elseif e==lvgl.EVENT_DEFOCUSED then
   elseif e==lvgl.EVENT_VALUE_CHANGED then
       sys.publish("UI_EVENT_IND",o,e)
   end
end

local text_area_obj = lvgl.textarea_create(cont,nil) --创建一个文本框
lvgl.obj_set_size(text_area_obj,280,58)   --设置尺寸
lvgl.obj_set_click(text_area_obj,true)
lvgl.textarea_set_text(text_area_obj,"")   --设置文本默认内容
lvgl.obj_align(text_area_obj,cont,lvgl.ALIGN_IN_TOP_LEFT,100,100)  --设置与容器的相对位置

local chs_keyboard_obj = lvgl.chs_keyboard_create(cont,nil) --创建一个键盘
lvgl.obj_set_size(chs_keyboard_obj,400,300)  --设置尺寸
lvgl.chs_keyboard_set_mode(chs_keyboard_obj,lvgl.CHSKB_MODE_QWERTY)  --设置键盘样式
lvgl.obj_set_click(chs_keyboard_obj,true)

-- 默认隐藏中文输入法控件,点击输入框显示中文输入法控件
lvgl.obj_set_hidden(chs_keyboard_obj,true)

-- 与输入框绑定
 lvgl.chs_keyboard_set_textarea(chs_keyboard_obj, text_area_obj)
 local outputCb = function(o, e)
     lvgl_UiDesigner_DefOutCb(o, e, chs_keyboard_obj)
 end
 lvgl.obj_set_event_cb(text_area_obj, outputCb)
 lvgl.obj_set_event_cb(chs_keyboard_obj, lvgl_UiDesigner_DefInCb)
 lvgl.obj_align(chs_keyboard_obj, parent_cont, lvgl.ALIGN_IN_TOP_LEFT, 20, 277)



是不是很简便呢~快来试试吧

最新demo链接:
https://gitee.com/openLuat/Luat_Lua_Air724U/tree/master/product/%E9%87%91%E7%89%9B%E5%BA%A7%E5%BC%80%E5%8F%91%E6%9D%BF/1.widgets/single/keyborard





2

更多惊喜即将开启



硬件设计省钱可靠,软件开发省时高效——只需一个Air722UG-NMM Cat.1模块,搭载LuatOS系统,既能轻松联网,又能直接驱动最大1024*600分辨率(未来有可能支持更大分辨率)的显示屏。

合宙LuatOS大屏开发动态





5寸金牛座开发板:

已上架合宙官方淘宝店铺,正在热销:
淘宝一店:luat.taobao.com
淘宝二店:openluat.taobao.com

7寸金牛座开发板:
正在紧锣密鼓地生产,敬请期待;

10.1寸显示方案:

可以采用"7寸金牛座开发板+10.1寸裸屏"搭配的方式来开发调试;


更多产品支持:
未来还有支持1920*1080分辨率的产品面世。

有项目需求或者对产品功能定义有要求的朋友,赶快拿起手机,扫描下方二维码一起交流吧:

▼ 批量定制开发咨询 ▼

合宙LuatOS-AirUI大屏产品线负责人

朱天华18616233557



- 点击图片链接,了解更多应用 -






吃个瓜,下周见

可可爱爱
猜不到你的另一面
换个角度,一切OK






更多物联网应用开发
欢迎加入微信/QQ技术交流群探讨沟通

- 合宙技术交流微信群 -

即刻微信/企业微信扫码加入

每个建议都值得关注

每个技能都值得分享


- 合宙技术交流QQ群 -

QQ扫码入群:827963649

行业人士交流分享,让万物互联更简单


您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存