在ARM板上实现qt虚拟键盘 Qwidget实现 官方虚拟键盘、第三方虚拟键盘qtvirtualkeyboard //Qwidget最简单但效果不是最好

2024-06-20 1248阅读

一 前言

在使用qt的虚拟键盘以前,我的开发板qt环境中并没有安装虚拟键盘库,所以这里还会顺便介绍如何在开发板上已安装qt环境的前提下,继续更新qt的组件。

开发板qt版本:5.15.2

二 在开发板上更新qt组件

在这里,我默认你已经有自己动手交叉编译过qt源码了,否则你将缺少部分细节和前置知识。首先在下载到的qt源码处,找到qtvirtualkeyboard组件文件夹。

在ARM板上实现qt虚拟键盘 Qwidget实现 官方虚拟键盘、第三方虚拟键盘qtvirtualkeyboard //Qwidget最简单但效果不是最好

然后将该文件夹复制到qt编译后安装的目录中(我的qt安装目录是/home/book/nfs_rootfs/qtproject),并且进入这个文件夹,如下图

在ARM板上实现qt虚拟键盘 Qwidget实现 官方虚拟键盘、第三方虚拟键盘qtvirtualkeyboard //Qwidget最简单但效果不是最好

执行qt安装目录源码中的qmake,自行调整路径,输入

/home/book/nfs_rootfs/qtproject/bin/qmake

使用qt的编译打包工具qmake之后,生成了我们目标平台的makefile文件,直接编译qtvirtualkeyboard组件库,输入

make

编译好以后还要安装到qt框架中,在当前路径继续输入命令

make install

至此qt组件更新完毕。

注意:更新虚拟键盘qtvirtualkeyboard组件时,要用刚才提到的一样的qtvirtualkeyboard组件更新方法去更新svg组件。svg组件是虚拟键盘运行的依赖。

svg组件文件也在qt源码中,如图:

在ARM板上实现qt虚拟键盘 Qwidget实现 官方虚拟键盘、第三方虚拟键盘qtvirtualkeyboard //Qwidget最简单但效果不是最好

三 ARM板虚拟键盘环境配置

完成虚拟键盘的组件更新以后,将整个qt安装目录的qt源码编译文件复制到开发板原来的qt源码编译文件目录。这一步在开发板上运行,请读者自己修改Ubuntu上qt安装文件的路径和ARM板上qt安装文件路径。

cp -rf ~/nfs_rootfs/qtproject /opt

~/nfs_rootfs/qtproject   是我Ubuntu上qt安装文件的路径

/opt                               是我ARM板上放置qt安装文件的路径

四 代码编写

4.1 官方虚拟键盘

        参考文章:http://t.csdnimg.cn/l37R2

在程序的main函数中,QApplication a(argc, argv);/QGuiApplication app(argc, argv);的前面,加入:

 qputenv("QT_IM_MODULE", QByteArray("qtvirtualkeyboard"));

例如:

main.cpp
int main(int argc, char *argv[])
{
    qputenv("QT_IM_MODULE", QByteArray("qtvirtualkeyboard"));
    QApplication a(argc, argv);    //在这行前面
    MainWidget w;
    w.show();
    return a.exec();
}
 

将代码编译后(默认你已经会交叉编译qt程序并且在arm板上执行了),执行,点击文本框既可看到键盘弹出来。开发板不在我身边,效果图日后补上。

输入时键盘占满整个屏幕,而且语言切换有很多的国家语言,不太方便。

4.2 第三方Qwidget虚拟键盘库

        这个老哥的文章提到了Qwidget实现的虚拟键盘库:http://t.csdnimg.cn/IqCsu(老哥文章)

虚拟键盘库下载地址:https://gitee.com/yynestt/QVirtualKeyboard/tree/master/

根据作者的使用说明如下:

在ARM板上实现qt虚拟键盘 Qwidget实现 官方虚拟键盘、第三方虚拟键盘qtvirtualkeyboard //Qwidget最简单但效果不是最好

下载好第三方虚拟键盘库以后,我们在Ubuntu中,将这个虚拟键盘库文件复制到qt安装文件中,如图

在ARM板上实现qt虚拟键盘 Qwidget实现 官方虚拟键盘、第三方虚拟键盘qtvirtualkeyboard //Qwidget最简单但效果不是最好

进入虚拟键盘文件中执行qmake程序,使用的qmake是qt安装文件中的qmake:

/home/book/nfs_rootfs/qtproject/bin/qmake

使用qt的编译打包工具qmake之后,生成了我们目标平台的makefile文件,直接编译第三方qtvirtualkeyboard组件库

make

编译好,从当前目录(在下载第三方虚拟键盘库文件中)输入

cd  ./bin/plugins/platforminputcontexts

看到  libQt5SoftKeyboard.so 库文件,将其复制,粘贴到qt安装文件中的   ./plugins/platforminputcontexts 目录中。我的完整目录参考如下:

~/nfs_rootfs/qtproject/plugins/platforminputcontexts

然后在项目main.cpp的main函数中设置好环境变量。代码:qputenv("QT_IM_MODULE",QByteArray("Qt5Input"));如图

在ARM板上实现qt虚拟键盘 Qwidget实现 官方虚拟键盘、第三方虚拟键盘qtvirtualkeyboard //Qwidget最简单但效果不是最好

点击文本框后,弹出的虚拟键盘占用屏幕2/3,切换语言时只有中英文,对比官方美观了一些。

VPS购买请点击我

免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们,邮箱:ciyunidc@ciyunshuju.com。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!

目录[+]