查看完整版本: [-- 集成google输入法的嵌入式中文输入面板 --]

QTCN开发网 -> Qt代码秀 -> 集成google输入法的嵌入式中文输入面板 [打印本页] 登录 -> 注册 -> 回复主题 -> 发表主题

<<   1   2  >>  Pages: ( 2 total )

笑颜 2018-07-17 09:33

集成google输入法的嵌入式中文输入面板

[attachment=19224]

源码:https://github.com/xiaoyanLG/Soft-keyboard

nigoole 2018-07-17 10:27

stlcours 2018-07-17 21:38
博客里的文章少了点,加油多写点啊,造福众生~~

ccazqyy 2018-07-18 10:22
        

liudianwu 2018-07-18 11:25
输入法核心做得非常棒,比我那个要好,支持首字母模糊查找,尤其是谷歌输入法的核心部分,大大的赞!

nigoole 2018-07-18 13:34
liudianwu:输入法核心做得非常棒,比我那个要好,支持首字母模糊查找,尤其是谷歌输入法的核心部分,大大的赞![表情]  (2018-07-18 11:25) 

终于可以给你的跑车换轮胎了!~飞起

robinsonsir 2018-07-24 18:20
  

hehui 2018-07-27 09:22

txc314159 2018-07-31 16:33
测试部分为什么没用,不能输东西进去。

笑颜 2018-07-31 18:41
txc314159:测试部分为什么没用,不能输东西进去。 (2018-07-31 16:33) 

并没有注册到真正的输入服务里面。

笑颜 2018-07-31 19:21
txc314159:测试部分为什么没用,不能输东西进去。 (2018-07-31 16:33) 

为了满足你的要求,简单改了下,你下载最新的就可以输入到测试框里面了!

liuchangyin 2018-08-08 09:38

xiiaoleii 2018-08-09 09:14
感谢大神的分享!在windows下MIngGW的Qt5.7可以编译使用,在ubuntu 14里面可以编译,一运行就崩了。我把谷歌输入法工程单独拿出来运行的,配合demo输入一个字母,调用查询接口,可以查到中文windows qt正常运行。ubuntu qt在init这里加在词库的时候崩了,terminal called after throwing an instance of 'std::bad_alloc' what(): std::bad_alloc.

xiiaoleii 2018-08-09 13:21
ubuntu Qt里面,编译可以了,运行的时候 bool ret = googlePinyin->init(qApp->applicationDirPath() + "/dict");这个返回的是false!所以查询不到汉字哪里需要修改么?

xiiaoleii 2018-08-09 14:27
逐行跟踪,发现这个地方出了问题:
SpellingTrie &spl_trie = SpellingTrie::get_instance();
if(!spl_trie.load_spl_trie(fp)||省略)这句崩了!加载词库dict文件崩了!
下面是源码部分:不知道哪里有问题,毕竟谷歌的代码,不知道如何修改。
const SpellingTrie* SpellingTrie::get_cpinstance() {
  return &get_instance();
}

SpellingTrie& SpellingTrie::get_instance() {
  if (NULL == instance_)
    instance_ = new SpellingTrie();

  return *instance_;
}

xiiaoleii 2018-08-09 14:48

这个异常查了资料,据说是频繁的new和delet造成的,这个代码写的也是飘逸;
bool SpellingTrie::load_spl_trie(FILE *fp) {
  if (NULL == fp)
    return false;
  if (fread(&spelling_size_, sizeof(size_t), 1, fp) != 1)
    return false;
  if (fread(&spelling_num_, sizeof(size_t), 1, fp) != 1)
    return false;
  if (fread(&score_amplifier_, sizeof(float), 1, fp) != 1)
    return false;
  if (fread(&average_score_, sizeof(unsigned char), 1, fp) != 1)
    return false;
    printf("%s","iii");

  if (NULL != spelling_buf_)
    delete [] spelling_buf_;
    printf("%s","jjj");

  spelling_buf_ = new char[spelling_size_ * spelling_num_];
  printf("%s","kkk");

  if (NULL == spelling_buf_)
    return false;
    printf("%s","lll");
  if (fread(spelling_buf_, sizeof(char) * spelling_size_,
            spelling_num_, fp) != spelling_num_)
    return false;

  return construct(spelling_buf_, spelling_size_, spelling_num_,
                   score_amplifier_, average_score_);
}

xiiaoleii 2018-08-09 15:14
xiiaoleii:这个异常查了资料,据说是频繁的new和delet造成的,这个代码写的也是飘逸;
bool SpellingTrie::load_spl_trie(FILE *fp) {
  if (NULL == fp)
    return false;
....... (2018-08-09 14:48) 

spelling_buf_ = new char[spelling_size_ * spelling_num_];这句代码有毒,哈哈!

icecool 2018-08-17 17:12
xiiaoleii:spelling_buf_ = new char[spelling_size_ * spelling_num_];这句代码有毒,哈哈! (2018-08-09 15:14) 

你好,我遇到跟你一样的问题,请问你解决了吗?

hejiang177 2018-08-18 09:59
看起来很不错哟,学习学习

阿里木木 2018-08-28 08:59
       太棒了

hejiang177 2018-08-29 18:08
兄台,这个能移植到嵌入式ARM平台上

liudianwu 2018-10-17 12:25
xiiaoleii:感谢大神的分享!在windows下MIngGW的Qt5.7可以编译使用,在ubuntu 14里面可以编译,一运行就崩了。我把谷歌输入法工程单独拿出来运行的,配合demo输入一个字母,调用查询接口,可以查到中文windows qt正常运行。ubuntu qt在init这里加在词库的时候崩了,terminal called after th .. (2018-08-09 09:14) 

我也有这个问题,是谷歌输入法内核的问题,解决办法就是下载Qt自带输入法的源码,然后解压出来,找到谷歌输入法内核文件夹中同名的所有文件,全部替换即可。

stlcours 2018-11-04 18:32
xiiaoleii:spelling_buf_ = new char[spelling_size_ * spelling_num_];这句代码有毒,哈哈! (2018-08-09 15:14) 

我也碰到这个问题了,请问频繁的new和delete为什么会造成问题呢??应该怎么解决呢?

seejv134 2019-03-11 16:36
感谢,楼主分享,最近正在找谷歌输入法的资源呢,感谢。

fjydpf 2019-03-27 08:18
不错不错,谢谢了

zhuling9026 2019-04-03 10:00
点个赞,大佬们都好厉害

核心科技 2019-04-03 22:17
牛逼,人类的进步就是靠大神的无私。

xiongchao99 2019-04-11 21:54
记忆的词汇在重新启动输入法后,就丢失了

笑颜 2019-04-12 08:25
xiongchao99:记忆的词汇在重新启动输入法后,就丢失了 (2019-04-11 21:54) 

你换成xyinput的那种输入引擎就可以!google没移植好!

xiongchao99 2019-04-13 15:05
xyinput好像是用数据库实现的,不太适合我的场景,我看谷歌拼音底层好像也只是将新词、词频写入内存,并没有进一步更新词库文件.dat,请问大佬需要怎么实现文件同步更新?

apud 2019-04-13 20:51
不错。点赞!

zuijiudangge 2019-04-27 10:01
东西很好,对楼主表示感谢,不过发现了一个bug,中文模式下点击G再点击V程序会蹦。自己能力有限没能解决

笑颜 2019-04-27 11:17
zuijiudangge:[表情] 东西很好,对楼主表示感谢,不过发现了一个bug,中文模式下点击G再点击V程序会蹦。自己能力有限没能解决 (2019-04-27 10:01)

非常感谢指出,真没发现这个BUG.
已经修复这个BUG,更新最新代码解决问题!

fjydpf 2019-05-09 09:28
不错,给力,

zxjrainbow 2019-07-10 11:20
先下载保存。

nxc2018 2019-07-29 18:17
挺炫酷的

netman_006 2019-09-03 14:00
在哪下载呢?

dubuzherui 2019-09-16 21:28
在哪下载呢?

笑颜 2019-09-19 08:33
dubuzherui:在哪下载呢? [表情]  (2019-09-16 21:28) 

https://github.com/xiaoyanLG/Soft-keyboard

笑颜 2019-09-19 08:33
netman_006:在哪下载呢?  (2019-09-03 14:00) 

https://github.com/xiaoyanLG/Soft-keyboard

fengwujiutan 2019-10-31 14:59
你好,我本地电脑上已经安装输入法了,使用时如何启用该输入法?谢谢

fengwujiutan 2019-10-31 16:07
笑颜:为了满足你的要求,简单改了下,你下载最新的就可以输入到测试框里面了! (2018-07-31 19:21) 

请问修改的哪里?我这里使用该输入法也不能输入

fengwujiutan 2019-11-11 16:31

笑颜 2019-11-12 08:48
fengwujiutan:[表情] [表情] [表情] [表情]  (2019-11-11 16:31) 

这个输入法并没有做操作系统层的关联,所以不是市面上那种安装即可使用的输入法。

fengwujiutan 2019-11-12 08:59
笑颜:这个输入法并没有做操作系统层的关联,所以不是市面上那种安装即可使用的输入法。 (2019-11-12 08:48) 

那请问我要是想用这个输入法,该怎么才能使用呢?你的事例代码中,能够将输入法调出来,但是不能正常输入

笑颜 2019-11-13 14:56
fengwujiutan:那请问我要是想用这个输入法,该怎么才能使用呢?你的事例代码中,能够将输入法调出来,但是不能正常输入 (2019-11-12 08:59) 

不能输入是表现为什么样的? 字库没加载成功?还是其他什么原因?

笑颜 2019-11-13 14:56
fengwujiutan:那请问我要是想用这个输入法,该怎么才能使用呢?你的事例代码中,能够将输入法调出来,但是不能正常输入 (2019-11-12 08:59) 

你可以描述清楚一点,最好加点截图,有代码问题把代码也截图

fengwujiutan 2019-11-13 16:40
代码没发现问题,录了一个视频,帮忙看一下,谢谢
链接: https://pan.baidu.com/s/1AokvCpMdHHlobWwoQBgR9w 提取码: 852d

笑颜 2019-11-13 18:39
fengwujiutan:代码没发现问题,录了一个视频,帮忙看一下,谢谢
链接: https://pan.baidu.com/s/1AokvCpMdHHlobWwoQBgR9w 提取码: 852d (2019-11-13 16:40) 

我记得没错,应该是需要有控件获取到焦点才能输入进去,也就是你还需要点击一下你要输入的控件

fengwujiutan 2019-11-14 14:24
笑颜:我记得没错,应该是需要有控件获取到焦点才能输入进去,也就是你还需要点击一下你要输入的控件 (2019-11-13 18:39) 

我现在通过点击编辑框获取到焦点,输入法才调用出来的,焦点已经获取到了,还是不行


查看完整版本: [-- 集成google输入法的嵌入式中文输入面板 --] [-- top --]



Powered by phpwind v8.7 Code ©2003-2011 phpwind
Gzip disabled