大屏開發(fā),一個(gè)Air722金牛座開發(fā)板就夠了!
聚焦行業(yè)應(yīng)用,助力快速開發(fā)——合宙基于Air722大屏模組已陸續(xù)推出農(nóng)業(yè)大棚可視化DTU、空調(diào)控制器、智能電動(dòng)車中控方案、汽車充電樁、自助售貨機(jī)、數(shù)據(jù)采集控制器UI參考等大屏應(yīng)用解決方案。
本期特別介紹最新中文輸入法控件,文末更多驚喜彩蛋!
1
金牛座LVGL中文輸入法控件
Air722金牛座系列項(xiàng)目采用LVGL7.1作為開發(fā)用戶界面程序的GUI框架,高度自定義頁面,開發(fā)簡(jiǎn)便快捷。
金牛座LVGL中文輸入法控件——lvgl.chs_keyboard是在lvgl.keyboard基礎(chǔ)上編寫的一個(gè)自定義控件,增加了支持中文輸入法(拼音)的功能。虛擬鍵盤+中文輸入法,進(jìn)一步拓寬LVGL開發(fā)的控件類型,應(yīng)用開發(fā)更便捷。
如何使用中文輸入法控件
一、創(chuàng)建鍵盤
通過 lvgl.chs_keyboard_create可以創(chuàng)建鍵盤,如果不需要復(fù)制操作,那么第二個(gè)參數(shù)則為nil:
--創(chuàng)建鍵盤
chs_keyboard_obj = lvgl.chs_keyboard_create(cont,nil)
二、鍵盤模式
可以通過chs_keyboard_set_mode設(shè)置鍵盤模式和樣式:
-- 設(shè)置鍵盤模式
lvgl.chs_keyboard_set_mode(chs_keyboard_obj,lvgl.CHSKB_MODE_QWERTY)
三、事件控制
想要演示鍵盤的輸入效果,則需要?jiǎng)?chuàng)建一個(gè)文本框,然后通過 chs_keyboard_set_textarea 將鍵盤與文本框控件綁定:
-- 與輸入框綁定
lvgl.chs_keyboard_set_textarea(keyboard,textarea)
設(shè)置文本框控件的一個(gè)點(diǎn)擊回調(diào)函數(shù),當(dāng)文本框被點(diǎn)擊的時(shí)候創(chuàng)建一個(gè)鍵盤,同時(shí)將鍵盤的輸入綁定到文本框。當(dāng)鍵盤點(diǎn)擊確定或者取消時(shí),就銷毀鍵盤,在下次點(diǎn)擊的時(shí)候重新創(chuàng)建。
示例代碼如下:
手機(jī)橫屏/上下滑動(dòng)查看完整代碼:
function lvgl_UiDesigner_DefOutCb(o,e,output) --關(guān)聯(lián)函數(shù)
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) --創(chuàng)建一個(gè)文本框
lvgl.obj_set_size(text_area_obj,280,58) --設(shè)置尺寸
lvgl.obj_set_click(text_area_obj,true)
lvgl.textarea_set_text(text_area_obj,"") --設(shè)置文本默認(rèn)內(nèi)容
lvgl.obj_align(text_area_obj,cont,lvgl.ALIGN_IN_TOP_LEFT,100,100) --設(shè)置與容器的相對(duì)位置
local chs_keyboard_obj = lvgl.chs_keyboard_create(cont,nil) --創(chuàng)建一個(gè)鍵盤
lvgl.obj_set_size(chs_keyboard_obj,400,300) --設(shè)置尺寸
lvgl.chs_keyboard_set_mode(chs_keyboard_obj,lvgl.CHSKB_MODE_QWERTY) --設(shè)置鍵盤樣式
lvgl.obj_set_click(chs_keyboard_obj,true)
-- 默認(rèn)隱藏中文輸入法控件,點(diǎn)擊輸入框顯示中文輸入法控件
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)
是不是很簡(jiǎn)便呢~快來試試吧
最新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
更多驚喜即將開啟
硬件設(shè)計(jì)省錢可靠,軟件開發(fā)省時(shí)高效——只需一個(gè)Air722UG-NMM Cat.1模塊,搭載LuatOS系統(tǒng),既能輕松聯(lián)網(wǎng),又能直接驅(qū)動(dòng)最大1024*600分辨率(未來有可能支持更大分辨率)的顯示屏。
合宙LuatOS大屏開發(fā)動(dòng)態(tài)
5寸金牛座開發(fā)板:
已上架合宙官方淘寶店鋪,正在熱銷:
淘寶一店:luat.taobao.com
淘寶二店:openluat.taobao.com
7寸金牛座開發(fā)板:
正在緊鑼密鼓地生產(chǎn),敬請(qǐng)期待;
10.1寸顯示方案:
可以采用"7寸金牛座開發(fā)板+10.1寸裸屏"搭配的方式來開發(fā)調(diào)試;
更多產(chǎn)品支持:
未來還有支持1920*1080分辨率的產(chǎn)品面世。
-
開發(fā)板
+關(guān)注
關(guān)注
25文章
5072瀏覽量
97656
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論