xiaohua4758 / lvgl8.0.1_cn_keyboard

A keyboard of chinese, with pinyin input method(IME)

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

适用于单片机的lvgl简单中文键盘拼音输入法,使用QT5.14创建,直接打开即可运行模拟器
如果QT编译提示有错误,尝试在构建设置中重设目录:QT的左边栏-"项目"->"Desktop QT5.14.2 MinGW 32-bit"->"构建设置"->"概要"->"构建目录",填入一个目录,比如“../output”,参考“如有QT编译错误看这里.jpg”

GUI: lvgl8.0.1
1. 功能
适用于单片机的中文拼音输入法,创建一个拼音输入的键盘,接受拼音输入,并显示拼音对应的候选字,通过触摸点击选择目标候选汉字,gui平台是lvgl8.0.1。

2. 原理
在lvgl原文件"lv_keyboard.c"基础上进行键盘的改写,新文件名为"lv_cn_keyboard.c",共同存放于"lvgl\src\extra\widgets\keyboard\"目录下,相关的对外函数名称以"lv_cn_xxx"开头。
如创建一个中文拼音输入法的函数名称为
lv_obj_t * lv_cn_keyboard_create(lv_obj_t * parent, const lv_font_t *cn_font)。
原官方文件"lv_keyboard.c"与本中文输入"lv_cn_keyboard.c"可根据实际情况自由选择使用,中文拼音输入法lv_cn_keyboard.c已经包含了官方lv_keyboard.c键盘的所有功能。

3. 涉及文件说明
(1) lvgl\src\extra\widgets\keyboard\lv_cn_keyboard.c,中文拼音输入法键盘控件源文件,可创建一个中文拼音输入法键盘控件
(2) user\tiny_pinyin.c,简单的拼音输入法,来源于网络
(3) myfont\my_cn_font1.c 由字体生成工具 Lvgl Font Tool V0.4 生成中文字库
(4) lvgl\examples\widgets\keyboard\lv_example_keyboard_1.c,使用中文拼音输入法键盘的简单应用例程

4. 使用说明

示例:
(1) 创建键盘
	static lv_obj_t *kb = NULL;
	lv_obj_t * ta;
	
	/*创建一个textarea来接收键盘输入*/
	ta = lv_textarea_create(lv_scr_act());				
	....
	
	if(NULL == kb){
		/*使用lv_cn_keyboard_create创建键盘,注意是lv_cn_前缀,第二参数my_cn_font1是字库*/
		kb = lv_cn_keyboard_create(lv_scr_act(), &my_cn_font1);	
		
		/*可以选择使用lv_cn_keyboard_set_kb_type设置键盘类型,参数等于0时为英文键盘,等于1时为中文键盘*/
		//lv_cn_keyboard_set_kb_type(0);  
	}
	if(NULL != kb){
		/*使用lv_cn_keyboard_set_textarea将键盘与textarea绑定,注意是lv_cn_前缀*/
		lv_cn_keyboard_set_textarea(kb, ta);			
	}

(2) 删除键盘
	完成输入任务后,可删除键盘来释放资源
	lv_obj_del(kb);                 //删除键盘,以便释放键盘资源
    kb = NULL;

(3) 注意事项
	a. 此拼音输入法是在lv_keyboard.c基础上修改,相关函数修改为lv_cn_前缀,键盘上的“En/Cn”键用于切换英文或中文输入法
	b. lv_cn_keyboard_create函数与原lv_keyboard_create函数相比增加一个输入参数。
	lv_obj_t * lv_cn_keyboard_create(lv_obj_t * parent, const lv_font_t *cn_font)
	新增的第二个参数const lv_font_t *cn_font是中文字库,可通过lvgl官网教程制作,或者直接利用字体生成工具 Lvgl Font Tool V0.4 制作
	c. 此拼音输入法仅允许一个实例运行,暂时不支持多个实例运行。
	
5. 有关不足
tiny_pinyin.c只是一个简单、资源占有极低、轻量级拼音输入法,仅能进行单字的候选,未有多字联想候选功能

About

A keyboard of chinese, with pinyin input method(IME)


Languages

Language:C 99.8%Language:Python 0.1%Language:QMake 0.0%Language:Makefile 0.0%Language:Objective-C 0.0%Language:C++ 0.0%Language:Shell 0.0%Language:CMake 0.0%