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目前可能需要自己建立。这样就能自动弹出软键盘了。


猜你喜欢

转载自blog.csdn.net/zhoudekuai/article/details/37876885