关于嵌入式QML dict_pinyin.dat的编译更新

news/2024/11/14 3:42:38/文章来源:https://www.cnblogs.com/mgshadow/p/18331250

硬件平台:全志的A40I-H 

软件平台:Linux 内核版本3.10.65

QT版本:5.9.0

 

重新编译dict_pinyin.dat的作用 

1.解决输入"nss"导致输入法崩溃的问题

2.解决输入某些嵌入式平台不支持的字体,例如“捃”,导致程序崩溃的问题

 

源码路径:

~/qt-everywhere-opensource-src-5.9.0/qtvirtualkeyboard/src/virtualkeyboard/3rdparty/pinyin/command

目录里面有一个Makefile和pinyinime_dictbuilder.cpp

1.不能直接make,cpp文件里面有一句提示信息

/**
* Build binary dictionary model. Make sure that ___BUILD_MODEL___ is defined
* in dictdef.h.
*/

需要在dictdef.h里面取消___BUILD_MODEL___ 宏的注释,dictdef.h路径:

~/qt-everywhere-opensource-src-5.9.0/qtvirtualkeyboard/src/virtualkeyboard/3rdparty/pinyin/include

 

2.修改完成,在当前目录下,打开控制台,直接make即可

 

3.编译完成,会有一个可执行文件pinyinime_dictbuilder

4.按照自己的喜好或者需求,修改文件rawdict_utf16_65105_freq.txt

路径:~/qt-everywhere-opensource-src-5.9.0/qtvirtualkeyboard/src/virtualkeyboard/3rdparty/pinyin/data

注意:最好在虚拟机或者Linux环境下用vim打开,不要拉出去Windows下编辑,不然txt文件格式会有出入,到时候会build 失败

   a.某些生僻字,在当前平台运行会报错,可以直接删除该字体,例如A40i的libQt5Gui.so库, 不支持“捃"字,输入拼音jun会让程序崩溃,所以删掉此行

   b.输入nss会报错,删掉ni shi shui 和ni shi shei 这两行联想字体即可

5. 回到pinyinime_dictbuilder的目录,在控制台里面 ./pinyinime_dictbuilder执行编译

编译成功会提示如下信息

6.回到data目录,查看.dat文件是否已经更新

路径:~/qt-everywhere-opensource-src-5.9.0/qtvirtualkeyboard/src/virtualkeyboard/3rdparty/pinyin/data

在控制台输入 ls -la查看.dat文件的生成时间,如果为最新,即可直接放入嵌入式平台中使用。

 

参考资料:

1.GooglePinyin分析 | AlphaBoom

2.xiangfademao/PinYinImeDicBuilder: 谷歌拼音输入法词库生成工具 (github.com)

3.qt平台集成google拼音中文输入法_qml使用谷歌拼音-CSDN博客

 

特别鸣谢:小瑜、林工、小小周。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/773847.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

15-并发控制理论

15-并发控制理论 并发控制横跨了多个层级:operator Execution 操作执行 Access Methods 读表 buffer Pool Manager 缓存池日志恢复buffer Pool Manager 缓存池 Disk 磁盘管理Motivation:当多人修改数据库同一条数据,就会出现竞争问题 把100块钱从A账户转移到B账户,如果A账…

安装 jar包为windows服务

下载安装Java Service Wrapper 下载https://www.krenger.ch/blog/category/windows/ 安装 下载后在D盘找个位置解压: 在同级目录建一个新的文件夹,就命名JavaServiceWrapper吧:在文件夹JavaServiceWrapper下新建bin、conf、lib、logs、jre文件夹: 给下载解压的src/bin下边标…

2. GPIO读写

GPIO简介GPIO(全称为General Purpose Input/Output),即通用输入/输出,可以认为GPIO是片外外设与片内的通信接口,通过控制GPIO的电平状态,可以实现片外外设与片内的通信以及数据的输入输出。对于st32F103系列的GPIO,其命名规则为GPIO+端口号,如GPIOA,GPIOB。对于每个端口又…

使用 Easysearch 打造企业内部知识问答系统

大家可能都有这样的经历,刚入职一家企业时,同事往往会给你分享一些文档资料,有可能是产品信息、规章制度等等。这些文档有的过于冗长,很难第一时间找到想要的内容。有的已经有了新版本,但员工使用的还是老版本。 基于这种背景,我们可以利用 Easysearch 加 LLM 实现一个内…

Web系列-文件上传

Web系列-文件上传 做题思路 前端限制了上传文件的后缀,可以在前端修改代码或者bp抓包,再上传符合前端要求的文件类型,抓包后进行修改。 如果是php的环境,可以利用.user.ini,是一个局部配置文件,可以通过配置选项使每个php文件头或文件尾都进行文件包含 .user.ini利用需要…

【ollama】手把手教你布置本地大语言模型 以及各种常见用途#如何加载guff模型到ollama #如何更改ollama目录

ollama介绍 Ollama 是一个开源框架,专为在本地机器上便捷部署和运行大型语言模型(LLM)而设计。 以下是其主要特点和功能概述:简化部署:Ollama 目标在于简化在 Docker 容器中部署大型语言模型的过程,使得非专业用户也能方便地管理和运行这些复杂的模型。轻量级与可扩展:作…

SPONGE常用教程0:软件安装教程

课程准备阶段,介绍最简明安装流程,安装过程中如果遇到其他问题,请移步官方教程。第三方软件只提供个人安装心得。 软件安装环境默认为linux。 软件支持 SPONGE(Simulation Package tOward Next GEneration molecular modelling)是由北京大学高毅勤课题组开发的分子动力学模…

使用高速收发器进行数据传输(一)

本来想做一个这样的项目,但是简单地使用这个方法传递数据实在是没意义; 我希望最后以万兆网来实现这点; 目前事实上只是按照UG476的要求给IP核数据和取数即可,并不困难;

虚拟机:GCC共享库在连接时的搜索位置和优选次序

假设有两个相同的共享库,一个在标准的共享库搜索目录(/lib/i386-linux-gnu), 一个在非标准目录(/home/charles/tmp):在/home/charles/tmp下有个测试程序main.c, 调用共享库里的函数。 用如下的命令编译: 用ldd看一下link的共享库:可以看出,虽然我们指定了 要使用 …

mysql导出csv文件中文乱码解决方案

确认csv文件导出编码格式,如果已经知道了 ->从文本/csv导出 ->选择文件原始格式 ->转换保存即可 如果不知道是什么编码可以通过记事本或者 nop++打开查看文件编码格式 一般导出和保存的编码格式为:utf8,gb2312,ANSI

SmartSQL:一款方便、快捷的数据库文档查询、生成工具

SmartSQL ⚡ 一款方便、快捷的数据库文档查询、生成工具 致力于成为帮助企业快速实现数字化转型的元数据管理工具 🚩 项目介绍SmartSQL 是一款方便、快捷的数据库文档查询、导出工具!从最初仅支持SqlServer数据库、CHM文档格式开始,通过不断地探索开发、集思广益和不断改进…