Qt软件键盘

Qt5取消了QInputContext类后,要实现一个软键盘变得比较困难。在网上查找的例子都不怎么原生,总觉得有些小缺憾,比如输入框的光标不闪烁之类的。后来在国外网站找到一个大神写的软键盘MockupvirtualKeyboard(源链接打不开了),是基于qpa的。刚下载下来还真不会用(汗一个...),后来研究了下qt源码,估摸着我用的官网下载的Qt5.2.1编译版并没有编译对QPlatformInputContext的支持,想自己编译一份,但也找不到相应的配置项。最近Qt5.3出来后,下载了一个版本来运行,终于将软键盘弄出来了。

MockupVirtualKeyboard是个qpa插件,导入QCreator后,需要对源码做一处修改。

在showInputPanel方法中的

d->view->setFlags(d->view->flags() | Qt::FramelessWindowHint | Qt::WindowStaysOnTopHint	| Qt::WindowDoesNotAcceptFocus);
改为
d->view->setFlags(d->view->flags() | Qt::Tool | Qt::FramelessWindowHint | Qt::WindowStaysOnTopHint | Qt::WindowDoesNotAcceptFocus);

将编译出的三个文件:MockupVirtualKeyboard.dll, MockupVirtualKeyboard.lib, mockupvirtualkeyboard.pdb拷贝到Qt安装目录下的plugins/platforminputcontexts目录下,platforminputcontexts目前可能需要自己建立。这样就能自动弹出软键盘了。


评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值