• 6939阅读
  • 16回复

接近完美的虚拟键盘之中文输入法 [复制链接]

上一主题 下一主题
离线futureq
 

图酷模式  只看楼主 正序阅读 楼主  发表于: 2019-03-17
谷歌Pinyin输入法引擎,全部控件使用painter绘制,参考论坛中两位大神的帖子。
声明:参考了论坛中其他人的作品。
完美连打:

完美删除键、空格键、Enter键、翻页选词响应:


语句记忆:

自动识别可输入控件,无需任何特殊处理:


按键图标等功能还不完整,过几天再更新。可能是本人自身英语水平不高的原因,谷歌那个引擎用起来比想象中的麻烦,但是效果不错,支持单词,句子的连打,跟不联网的手机输入法效果差不多了,还可以记忆用户之前输入的句子。





离线fjydpf

只看该作者 16楼 发表于: 2019-11-29
可以在浏览器中输入吗?
离线fengwujiutan

只看该作者 15楼 发表于: 2019-11-11
能开源吗?
没伞的孩子应努力奔跑
离线feilanglove6

只看该作者 14楼 发表于: 2019-04-15
HelloWorld!!!
离线xiongchao99

只看该作者 13楼 发表于: 2019-04-14
回 futureq 的帖子
futureq:哈哈哈,太菜了,就抄了一下布局和谷歌的Pinyin引擎 (2019-03-25 20:40) 

谷歌拼音的新词与词频记忆,只是将其写入到内存,并未进一步修改词库文件,所以输入法实例析构后就清除失效了,大佬知道怎么将词频、新词写入词库文件吗
离线笑颜

只看该作者 12楼 发表于: 2019-03-25
回 liudianwu 的帖子
liudianwu:这个很简单,查看getOpenFileName的源码,按照其重新写一个,在其基础上增加一行 dialog.setWindowModality(Qt::WindowModal);
放在公共静态类引用就可以了。
QString frmInputTool::getFileName(const QString &filter, const QString &defaultDir, const QString &am .. (2019-03-25 20:27)

额、、、解决办法我又不是不知道。。。我只是说有BUG 你不能让每个人都自己去想办法解决Qt自己的BUG吧
离线futureq

只看该作者 11楼 发表于: 2019-03-25
回 liudianwu 的帖子
liudianwu:不错,抄的越来越像了![表情] (2019-03-24 20:47) 

哈哈哈,太菜了,就抄了一下布局和谷歌的Pinyin引擎
离线liudianwu

只看该作者 10楼 发表于: 2019-03-25
回 笑颜 的帖子
笑颜:
fileName = QFileDialog::getOpenFileName(this,
      tr("Open Image"), "/home/jana", tr("Image Files (*.png *.jpg *.bmp)"));
这样的用法咋办呢?
.......

这个很简单,查看getOpenFileName的源码,按照其重新写一个,在其基础上增加一行
  1. dialog.setWindowModality(Qt::WindowModal);

放在公共静态类引用就可以了。
  1. QString frmInputTool::getFileName(const QString &filter, const QString &defaultDir, const QString &fileName)
  2. {
  3.     QString file;
  4.     QFileDialog dialog;
  5.     dialog.setFixedSize(900, 600);
  6.     dialog.setWindowModality(Qt::WindowModal);
  7.     dialog.setWindowTitle("保存文件");
  8.     dialog.setLabelText(QFileDialog::Accept, "保存(&S)");
  9.     dialog.setLabelText(QFileDialog::Reject, "取消(&C)");
  10.     dialog.selectFile(fileName);
  11.     dialog.setNameFilter(filter);
  12.     dialog.setDirectory(defaultDir);
  13.     if (dialog.exec() == 1) {
  14.         file = dialog.selectedFiles().value(0);
  15.         file = QFileInfo(file).suffix().isEmpty() ? "" : file;
  16.     }
  17.     return file;
  18. }


欢迎关注微信公众号:Qt实战 (各种开源作品、经验整理、项目实战技巧,专注Qt/C++软件开发,视频监控、物联网、工业控制、嵌入式软件、国产化系统应用软件开发)QQ:517216493  WX:feiyangqingyun  QQ群:751439350
离线笑颜

只看该作者 9楼 发表于: 2019-03-25
回 liudianwu 的帖子
liudianwu:如果是dialog窗体,请在dialog窗体exec前增加一行代码,否则会阻塞窗体消息。
QDialog dialog;dialog.setWindowModality(Qt::WindowModal); (2019-03-25 15:41)

fileName = QFileDialog::getOpenFileName(this,
      tr("Open Image"), "/home/jana", tr("Image Files (*.png *.jpg *.bmp)"));

这样的用法咋办呢?

官方的方法是用open替换exec:https://bugreports.qt.io/browse/QTBUG-73092?filter=-2
但是还是有上面个问题!
离线liudianwu

只看该作者 8楼 发表于: 2019-03-25
回 笑颜 的帖子
笑颜:自带的有BUG,不能在dialog窗口上输入,不信你试试,比如QFileDialog窗口输入,这个是QML一直没解决的问题! (2019-03-25 12:56) 

如果是dialog窗体,请在dialog窗体exec前增加一行代码,否则会阻塞窗体消息。
QDialog dialog;dialog.setWindowModality(Qt::WindowModal);
欢迎关注微信公众号:Qt实战 (各种开源作品、经验整理、项目实战技巧,专注Qt/C++软件开发,视频监控、物联网、工业控制、嵌入式软件、国产化系统应用软件开发)QQ:517216493  WX:feiyangqingyun  QQ群:751439350
离线笑颜

只看该作者 7楼 发表于: 2019-03-25
回 xdh873939316 的帖子
xdh873939316:[图片]
自带的也好看,可以模仿一下。[表情]  (2019-03-25 10:42) 

自带的有BUG,不能在dialog窗口上输入,不信你试试,比如QFileDialog窗口输入,这个是QML一直没解决的问题!
离线xdh873939316

只看该作者 6楼 发表于: 2019-03-25

自带的也好看,可以模仿一下。
离线liudianwu

只看该作者 5楼 发表于: 2019-03-24
回 futureq 的帖子
futureq:最新更新[图片] (2019-03-24 19:10) 

不错,抄的越来越像了!
欢迎关注微信公众号:Qt实战 (各种开源作品、经验整理、项目实战技巧,专注Qt/C++软件开发,视频监控、物联网、工业控制、嵌入式软件、国产化系统应用软件开发)QQ:517216493  WX:feiyangqingyun  QQ群:751439350
离线futureq

只看该作者 4楼 发表于: 2019-03-24
最新更新
离线futureq

只看该作者 3楼 发表于: 2019-03-20
按键特效还差点,过几天持续更新
离线liudianwu

只看该作者 2楼 发表于: 2019-03-18
帮友商再顶一下!顺便打个广告!


欢迎关注微信公众号:Qt实战 (各种开源作品、经验整理、项目实战技巧,专注Qt/C++软件开发,视频监控、物联网、工业控制、嵌入式软件、国产化系统应用软件开发)QQ:517216493  WX:feiyangqingyun  QQ群:751439350
离线futureq

只看该作者 1楼 发表于: 2019-03-17
自己顶
快速回复
限100 字节
 
上一个 下一个