关于qt软键盘,急!!!

qq_35382927 2018-06-06 01:43:35
rt,最近项目中需要用到软键盘,环境是嵌入式arm下的qt485,网上找了很多例子,目前是把syszuxpinyin那个源码移植过来,但是还是有很多问题,比如我要支持软键盘兼容物理键盘输入,实现是软键盘界面接受key事件,但是这样一来因为软件盘界面是非qt::tool属性,会导致点击lineedit控件自动弹出软键盘后,lineedit上的光标消失,无法插入光标等一系列小bug,很影响使用!!网上找了好多例子都没有,有木有大神能给个解决方法???目前是重写了lineedit控件的focusin和focusout事件,让点击lineedit弹出软件盘时候光标不消失,但是这样也不能任意位置插入光标,且选中一段字符后无法取消选中。。。。其实把软键盘界面设置qt::tool属性,即可让lineedit控件正常,但是这样一来软键盘无法接受键盘事件,。。。。物理键盘的事件是直接发到lineedit上的,无法实现中英文软硬键盘兼容的目的。。。。有大神能给点思路或者给点建议解决这种问题吗!!??万分感谢
...全文
1473 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
逸冰小子 2019-10-31
  • 打赏
  • 举报
回复
调用这个函数 button->setFocusPolicy(Qt::NoFocus);
huo5896324 2018-06-07
  • 打赏
  • 举报
回复
要是实在没办法了,可以考虑,把lineEdit接收的键盘事件传递给你的软键盘对象。
feiyangqingyun 2018-06-06
  • 打赏
  • 举报
回复
我有个完美的解决方案:
1:纯QWidget编写,支持任何目标平台(亲测windows、linux、嵌入式linux等),支持任意Qt版本(亲测Qt4.6.0到Qt5.10.1)。
2:调用极为方便,pri文件调用形式,只要改成文件包含即可,例如pro文件中写 include($$PWD/inputnew/inputnew.pri)。
3:界面清晰简洁,UI美观友好,非常适合触摸设备。
4:同时支持实体键盘输入+鼠标单击输入+触摸输入。
5:支持迷你模式,界面大小随意设置,采用布局自使用任何分辨率。
6:界面自适应屏幕大小,输入法弹出位置为控件底部时,当超过桌面右边或者底部时,自动调整位置。
7:自由控制需要显示输入法和不需要显示输入法,当某些控件不需要弹出输入法,只需要对应不需要弹出输入法的控件设置属性noinput为真即可。例如ui->txt->setProperty("noinput", true);
8:实现了长按超过500毫秒重复执行按下的键的功能。例如长按退格键,不断删除。
9:shift键切换输入法,esc键隐藏输入法,空格选中第一个汉字,回车选中输入的拼音。和搜狗输入法处理一致。
10:英文、中文、手写(功能编写中)、数字字母、大小写、特殊字符自由切换。
11:支持单拼双拼词组输入,网上大部分只支持单个汉字输入。智能分页算法,可任意翻页查看汉字词组。
12:默认自带5种皮肤颜色,可随意切换,用户也可用QSS自定义皮肤。
13:字库文件可大可小,提供迷你版字库大小仅120KB,方便存储空间紧张的硬件,完整版字库25MB。
14:整个输入法代码行数约1000行,非常小,不会对程序增加大小造成负担。
15:代码结构极为清晰,注释详细,非常容易阅读和理解,同时也可以自行修改拓展自定义的需求。


详情参见:https://blog.csdn.net/feiyangqingyun/article/details/80347092

16,201

社区成员

发帖
与我相关
我的任务
社区描述
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
社区管理员
  • Qt
  • 亭台六七座
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧