医疗行业网站策划,成都微信网站建设公司,高端网站制作网站建设,北京工商注册信息查询前言
最近领导给了个需求#xff0c;希望将web嵌入到客户端里面#xff0c;做一个客户端外壳#xff0c;可以控制程序的启动、停止、重启#xff0c;并且可以调出键盘在触摸屏上使用(我们的程序虽然是BS架构#xff0c;但程序还是运行在本地工控机上的)#xff0c;我…前言
最近领导给了个需求希望将web嵌入到客户端里面做一个客户端外壳可以控制程序的启动、停止、重启并且可以调出键盘在触摸屏上使用(我们的程序虽然是BS架构但程序还是运行在本地工控机上的)我研究了一下qt的webengineview成功将web嵌入到客户端里面但是虚拟键盘这个问题却难住了我。
首先客户端无法调出系统的虚拟键盘我发现调系统键盘这条路走不通后转头去研究qt官方自带的虚拟键盘但是官方的虚拟键盘不支持拼音输入而且自带了一大堆语言我只需要中英文。想要修改必须改代码重新编译当我好不容易改完代码编译完让键盘拼音输入可用的时候部署到新机器上却出现了一大堆问题各种依赖找不到。因为官方的虚拟键盘是基于qml的部署较为复杂。然后我便从网上找到了一款基于qwidget的开源虚拟键盘成功解决了问题。前前后后花了一个多礼拜时间进行探索虽然最后解决问题时间比较短但中间却走了很大一波弯路在此我把解决方案分享出来希望后人可以少踩点坑
安装虚拟键盘 因为qt官方的虚拟键盘不支持拼音输入想要支持拼音需要改源代码并且安装部署较为麻烦所以网上找了一款第三方的开源键盘支持中英文输入 下载地址https://gitee.com/nkzhangkun/QVirtualKeyboard 键盘效果样式图: 下载源码后进行编译先进入pinyin目录建立build文件夹编译生成libqtpinyind.a cd pinyin/
mkdir build
cd build/
qmake ..
make编译qt5softkeyboard生成libQt5SoftKeyboard.so mkdir build
cd build/
qmake ..
make将生成的libQt5SoftKeyboardd.so放到qt的安装目录下如果你是用apt直接安装的qt那就是放到/usr/lib/x86_64-linux-gnu/qt5/plugins/platforminputcontexts/目录下 sudo cp libQt5SoftKeyboard.so /usr/lib/x86_64-linux-gnu/qt5/plugins/platforminputcontexts/在自己的qt应用程序添加虚拟键盘的环境变量 qputenv(QT_IM_MODULE,QByteArray(Qt5Input));修改虚拟键盘 虚拟键盘默认的大小有点过于大了默认直接占据了半个屏幕很多时候挡住了输入框需要修改源码调整键盘大小。修改inputcontext.cpp文件里的相关内容调整键盘高度我这里将高度改为了300 m_inputPanel-resize(1000, 300);修改完后重新编译重新将生成的libQt5SoftKeyboardd.so放到qt的安装目录下 运行自己的程序看看效果发现键盘高度已经缩小没有挡住输入框