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

这篇具有很好参考价值的文章主要介绍了在ARM板上实现qt虚拟键盘 Qwidget实现 官方虚拟键盘、第三方虚拟键盘qtvirtualkeyboard //Qwidget最简单但效果不是最好。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一 前言

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

开发板qt版本:5.15.2

二 在开发板上更新qt组件

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

qwidget部署虚拟键盘,qt,arm开发,qt,开发语言,linux

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

qwidget部署虚拟键盘,qt,arm开发,qt,开发语言,linux

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

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

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

make

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

make install

至此qt组件更新完毕。

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

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

qwidget部署虚拟键盘,qt,arm开发,qt,开发语言,linux

三 ARM板虚拟键盘环境配置

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

cp -rf ~/nfs_rootfs/qtproject /opt

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

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

四 代码编写

4.1 官方虚拟键盘

        参考文章:

在程序的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实现的虚拟键盘库:(老哥文章)

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

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

qwidget部署虚拟键盘,qt,arm开发,qt,开发语言,linux

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

qwidget部署虚拟键盘,qt,arm开发,qt,开发语言,linux

进入虚拟键盘文件中执行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"));如图

qwidget部署虚拟键盘,qt,arm开发,qt,开发语言,linux

点击文本框后,弹出的虚拟键盘占用屏幕2/3,切换语言时只有中英文,对比官方美观了一些。文章来源地址https://www.toymoban.com/news/detail-845535.html

到了这里,关于在ARM板上实现qt虚拟键盘 Qwidget实现 官方虚拟键盘、第三方虚拟键盘qtvirtualkeyboard //Qwidget最简单但效果不是最好的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • ubuntu虚拟机安装Qt5 for ARM交叉开发环境

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 本文讲述了在虚拟机中安装 Qt 交叉开发环境详细过程。以便在虚拟机中进行 Qt 应用程序的开发,处理触摸屏的部分会在下一篇文章中叙述。 我们的虚拟机为ubuntu18.04。 sudo apt-get install qt5-default 指令会安

    2024年02月09日
    浏览(1)
  • 【QT】——QWidget窗口类

    QWidget 类是所有窗口类的父类 (控件类是也属于窗口类), QWidget 类的父类的 QObject, 也就意味着所有的窗口类对象只要指定了父对象, 都可以实现内存资源的自动回收. 可以内嵌到其他窗口的内部,没有边框,需要指定父类窗口 可以作为独立的窗口显示,有边框,不需要指定父类窗

    2024年02月13日
    浏览(1)
  • Qt 之 QWidget QLabel

    Qt Creator 以工程项目 的方式对源码进行管理一个Qt Creator工程包含不同类型的文件 。 .pro 项目描述文件 .pro.user用户配置描述文件- .h头文件 .cpp源文件 .ui界面描述文件 资源文件(图片,音频,等) pro 项目描述文件的基本组成 #一注释起始符 : 以“#”开始,到这一行结束。快捷

    2024年02月13日
    浏览(1)
  • Qt:QWidget设置半透明背景

    设置窗体QWidget半透明背景 首先前提条件是设置: setAttribute(Qt::WA_TranslucentBackground); 方法一:重写QPaintEvent 方法二:自定义qss样式 方法三:使用QGraphicsOpacityEffect ,不过这种方法会影响子控件的透明度 效果参考如下:

    2024年02月15日
    浏览(1)
  • 常识——(adb)小米VR正式版使用第三方APP,电脑充当手机的蓝牙手柄,实现确认功能,从电脑键盘向手机输入文字

    1.小米vr正式在插入手机后,会自动启动小米VR APP,然后因为小米官方已经关闭了小米VR的生态,你面对的只是一个空荡荡的vr界面,以及商店里那些已经老旧的软件(大多已经不再更新,服务器关闭,不能使用) 看着外面的第三方APP比如gizmoVR浏览器,看着外面的VR虚拟应用,

    2024年02月06日
    浏览(20)
  • 【Qt】用QWidget显示opencv采集的摄像头图像

    本案例用QWidget容器重写paintEvent函数来显示OpenCv采集的摄像头画面,图像还可以自适应QWidget的大小,还可以检测相机断开失联的情况(可能是掉电、线被拔了等待)。在改变窗口大小时暂停显示图像,防止莫名其妙的卡顿奔溃错误!(显示图像的方式有很多种,可以用QLabel显

    2024年02月13日
    浏览(1)
  • Qt | QWidget 自定义消息处理函数(捕获调试信息),调试和测试必不可少

    # 01 函数qInstallMessageHandler     qInstallMessageHandler 是 Qt 中用于安装自定义消息处理函数的函数。在 Qt 应用程序中,可以使用 qInstallMessageHandler 来接管 Qt 的消息输出,以便自定义消息的处理和记录。 #02  myMessageOutput(QtMsgType type, const QMessageLogContext context, const QString msg)    

    2024年03月22日
    浏览(1)
  • Qt+QtWebApp开发笔记(六):http服务器html实现静态相对路径调用第三方js文件

    若该文为原创文章,转载请注明原文出处 本文章博客地址:https://hpzwl.blog.csdn.net/article/details/131244269 红胖子网络科技博文大全:开发技术集合(包含Qt实用技术、树莓派、三维、OpenCV、OpenGL、ffmpeg、OSG、单片机、软硬结合等等)持续更新中… 上一篇:《Qt+QtWebApp开发笔记(五

    2024年02月13日
    浏览(3)
  • arduino怎么导入第三方库和官方库

    一. 导入第三方库文件 # 找到arduino安装程序选的安装位置,例如如果是下面的位置的话 # 那就在D:softwareArduino下找到libraries  # 然后再把下载的第三方库文件移动到里面,比如我下载了一个I2Cdev的三方库 # I2Cdev里的文件是这样的:  # 然后你就能在arduino的加载库找到,找不到的可

    2024年02月12日
    浏览(1)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包