• 10310阅读
  • 9回复

[提问]QT使用虚拟键盘以及输入法问题 [复制链接]

上一主题 下一主题
离线690389372
 

只看楼主 倒序阅读 楼主  发表于: 2018-10-30
最近在学习如何使用虚拟键盘在arm上做到输入一些基本信息的效果,一开始按照大神的指示操作了一遍发现没有效果:就是把大神编译好的.so(.dll)放到指定位置(....bin/plugins/platforminputcontexts)然后添加环境变量qputenv("QT_IM_MODULE",QByteArray("dwime")); (export QT_IM_MODULE=dwime) ,然后运行了我新建的工程(最上面是一个按钮以防开始的焦点就在输入框,下面一个lineedit一个textedit),是没有弹出虚拟键盘的,请问各路大神是不是我遗漏了什么步骤,还是说需要修改系统的什么配置。目前的环境是有:ubuntu 12.04 32/64 、 win7 ,都是使用QT5.5 32。
离线liudianwu

只看该作者 1楼 发表于: 2018-10-30
我的输入法,直接编译完就可以用,很爽!
1:未采用Qt系统层输入法框架,独创输入切换机制。
2:纯QWidget编写,支持任何目标平台(亲测windows、linux、嵌入式linux等),支持任意Qt版本(亲测Qt4.6.0到Qt5.11.2),支持任意编译器(亲测mingw、gcc、msvc等),支持任意控件输入包括网页中的输入控件。
3:调用极为方便,pri文件调用形式,只要改成文件包含即可,例如pro文件中写 include($$PWD/inputnew/inputnew.pri)。
4:界面清晰简洁,UI美观友好,非常适合触摸设备。
5:同时支持实体键盘输入+鼠标单击输入+触摸输入。
6:支持Qt程序嵌入的浏览器中的网页中的文本框等控件的输入。
7:支持迷你模式,界面大小随意设置,采用布局自使用任何分辨率。
8:支持纯数字键盘模式,自由控制弹出完整输入法面板和数字键盘面板,只需要对控件设置属性即可。例如ui->txt->setProperty("flag", "number");
9:自由控制需要显示输入法和不需要显示输入法,当某些控件不需要弹出输入法,只需要对应不需要弹出输入法的控件设置属性noinput为真即可。例如ui->txt->setProperty("noinput", true);
10:界面自适应屏幕大小,输入法弹出位置为控件底部时,当超过桌面右边或者底部时,自动调整位置。
11:实现了长按超过500毫秒重复执行按下的键的功能。例如长按退格键,不断删除。
12:shift键切换输入法,esc键隐藏输入法,空格选中第一个汉字,回车选中输入的拼音。和搜狗输入法处理一致。
13:英文、中文、数字字母、大小写、特殊字符自由切换。
14:支持单拼双拼词组输入,网上大部分只支持单个汉字输入。智能分页算法,可任意翻页查看汉字词组。
15:默认自带5种皮肤颜色,可随意切换,用户也可用QSS自定义皮肤。
16:字库文件可大可小,提供迷你版字库大小仅120KB,方便存储空间紧张的硬件,完整版字库25MB。
17:可选谷歌内核的输入法引擎,字库文件1MB,不依赖数据库,资源占用低效率极高。支持模糊拼音,比如nh=你好。
18:可选windows专有版本,支持外部程序输入,比如输入到记事本、QQ聊天窗口等。
19:整个输入法代码行数1000行左右,非常小,不会对程序增加大小造成负担。
20:代码结构极为清晰,注释详细,非常容易阅读和理解,同时也可以自行修改拓展自定义的需求。
欢迎关注微信公众号:Qt实战/Qt入门和进阶(各种开源作品、经验整理、项目实战技巧,专注Qt/C++软件开发,视频监控、物联网、工业控制、嵌入式软件、国产化系统应用软件开发) QQ:517216493  WX:feiyangqingyun  QQ群:751439350
离线690389372

只看该作者 2楼 发表于: 2018-10-31
回 liudianwu 的帖子
liudianwu:我的输入法,直接编译完就可以用,很爽!
1:未采用Qt系统层输入法框架,独创输入切换机制。
2:纯QWidget编写,支持任何目标平台(亲测windows、linux、嵌入式linux等),支持任意Qt版本(亲测Qt4.6.0到Qt5.11.2),支持任意编译器(亲测mingw、gcc、msvc等),支持任意控件输入 .. (2018-10-30 10:34) 

刘大侠我能请教一下吗,我现在的情况是点击一下lineedit输入法只闪现了一次,然后提示libpng warning,是说rgb配置文件的警报,后续怎么点连闪现都没有,而且焦点没法确定,应该怎么做啊大神
离线690389372

只看该作者 3楼 发表于: 2018-10-31
回 liudianwu 的帖子
liudianwu:我的输入法,直接编译完就可以用,很爽!
1:未采用Qt系统层输入法框架,独创输入切换机制。
2:纯QWidget编写,支持任何目标平台(亲测windows、linux、嵌入式linux等),支持任意Qt版本(亲测Qt4.6.0到Qt5.11.2),支持任意编译器(亲测mingw、gcc、msvc等),支持任意控件输入 .. (2018-10-30 10:34) 

简单的说就是弹出来的输入法抢了主窗口的焦点,然后输入法判断焦点不在主窗口上的输入框就消失了,输入法那已经加了windowflag控制他是does not accept focus了
离线yuyu414

只看该作者 4楼 发表于: 2018-10-31
输入法的窗口属性要设置为Qt::Tool
离线yuyu414

只看该作者 5楼 发表于: 2018-10-31
另外libpng warning和这个没有关系,可以忽略掉这个警告,或者ps处理下图片,把配置信息去掉
离线690389372

只看该作者 6楼 发表于: 2018-10-31
回 yuyu414 的帖子
yuyu414:输入法的窗口属性要设置为Qt::Tool (2018-10-31 14:24) 

谢谢大神,我现在能显示输入法出来,但是每次都要再次点击输入框才能把内容输入进去,就是输入法出来输入框失去焦点,没有光标了,输入法正常显示了,这个又应该怎么解决
离线690389372

只看该作者 7楼 发表于: 2018-11-01
最后自己总结一下,工程中存在了一个设置窗口模态属性的东西,可能版本不同的原因,没有深究,我所使用的QT5.5中使用默认的属性(没有配置模态),输入法就不再抢焦点了,问题解决,后续开始在这基础上加其他国家的语言,感谢提供过帮助的各位,谢谢大家。
离线pengchengfan

只看该作者 8楼 发表于: 2018-12-05
最近在搞软键盘,是在linux是,使用的是QT4,发现模态窗口下无法点击输入法界面进行输入,各位有什么好的解决方法吗
离线424670725

只看该作者 9楼 发表于: 2019-01-17
回 liudianwu 的帖子
liudianwu:我的输入法,直接编译完就可以用,很爽!
1:未采用Qt系统层输入法框架,独创输入切换机制。
2:纯QWidget编写,支持任何目标平台(亲测windows、linux、嵌入式linux等),支持任意Qt版本(亲测Qt4.6.0到Qt5.11.2),支持任意编译器(亲测mingw、gcc、msvc等),支持任意控件输入 .. (2018-10-30 10:34) 

大神,QML可以用吗
快速回复
限100 字节
 
上一个 下一个