ARM Linux QT虚拟键盘的系列问题

这篇具有很好参考价值的文章主要介绍了ARM Linux QT虚拟键盘的系列问题。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

最近在做Linux系统的虚拟键盘功能,其中遇到很多问题,在此一一记录。

使用的系统平台为ARM Ubuntu18.04的系统,安装的QT版本为5.9.5,使用指令安装QT,安装后该版本QT默认不带虚拟键盘。

本文附带虚拟键盘所使用的部署文件,如果没有太大需求可以直接使用文件部署。

遇到的问题包括以下几个,有相同问题的可以往下继续:

(1)QT自身不带有虚拟键盘;

(2)QT虚拟键盘部署方法;

(3)QT虚拟键盘遮挡输入框;

(4)QT虚拟键盘全屏不显示问题。

一、使用指令安装QT,安装后的QT不带有虚拟键盘的功能。

该问题解决方法有两种:

1、从网上找虚拟键盘的源码编译,编译完成后进行部署。

2、使用源码安装完整版QT,安装好后编译虚拟键盘然后进行部署。

第一种方法,我找了几个虚拟键盘的例子进行编译,多多少少都有一些依赖库没有的问题,后来放弃了。

第二种方法,编译QT完成版的源码,需要花费一天时间。具体编译方法大家自行搜索吧。

二、QT虚拟键盘的部署方法

参考链接:

  ​​​​​​​ ​​​​​​​QT虚拟键盘的步数方法

三、QT虚拟键盘遮挡输入框问题

部署完成后,查看效果,系统默认输入法比较大,会遮盖输入框,导致输入时完全看不到输入的内容。

ARM Linux QT虚拟键盘的系列问题

 该问题有两种解决方式:

第一种:动态获取文本框的内容,在虚拟键盘的界面添加输入框,将文本框的内容传入输入框后进行编辑,编辑完成后再传回文本框。

第二种:调整键盘布局,只保留下半部分。

因时间关系使用第二种方式解决该问题,具体解决方式参考以下链接:

Linux QT 虚拟键盘调整大小的方法

四、QT虚拟键盘在软件全屏状态下不显示问题

由于Linux软件设置为开机自启动,开机后全屏运行,测试时发现虚拟键盘无法正常调用。

有两个问题,一个问题为不显示输入光标,另一个问题为键盘不弹出。

经过测试分析:

不显示输入光标的原因为界面焦点在界面切换时未切换到当前界面,使用鼠标点击页面后,可看到光标。

键盘不弹出问题,为页面显示遮挡住了软键盘,导致软键盘不显示。

针对这两个问题的原因,给出解决方法。

1、在界面切换时,调用activateWindow();显示时调用showFullScreen();

假设新打开的窗口名称为Form1,则在显示该窗口的代码中调用 :

 Form1->activateWindow();  
 Form1->showFullScreen();

ARM Linux QT虚拟键盘的系列问题

一定要使用showFullScreen()函数,不能使用show()函数,使用showFullScreen()函数可以将焦点切到当前界面,并显示输入光标。

 2、在界面显示时,调用lower();函数将当前界面下调一个层级,使得软键盘可以显示出来。

假设窗口名称为Form1,则在showEvent()的显示事件中调用lower();

this->lower();

ARM Linux QT虚拟键盘的系列问题

 该指令为将当前界面在显示是,下调一个层级,这样软键盘就可以显示出来了。在showEvent()事件设置即可。

3、如果软键盘或者实体键盘不能输入任何字符,则需调用this->releasekeyboard()函数释放键盘,释放后则可以正常调用了。

解决后的效果如下:

ARM Linux QT虚拟键盘的系列问题

 附带QT虚拟键盘的配置文件,直接将文件复制到执行文件目录即可,并在QT工程的main函数中,在QApplication前添加:
       

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

即可直接使用。

ARM LINUX QT 虚拟键盘配置文件文章来源地址https://www.toymoban.com/news/detail-507061.html

到了这里,关于ARM Linux QT虚拟键盘的系列问题的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

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

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

    2024年02月09日
    浏览(91)
  • 树莓派安装虚拟键盘,解决虚拟键盘乱码问题,解决MIPI DSI触摸屏触控漂移问题

    当我们买了触摸屏后,会发现没有键盘,还是无法输入,因此需要虚拟键盘 如果你的语言和地区是中文,那么安装虚拟键盘后可能显示乱码,所以还需要安装中文字体 安装完后,重启一下。重启后会发现系统的字体都变得清晰了,并且在菜单-附件中,会找到Keyboard 点击虚拟

    2024年02月09日
    浏览(54)
  • linux下将QT移植至arm环境

    讲下整个项目流程,我们的目标是把qt编出来程序放在arm开发板上面跑,首先下载QT源码和tslib源码(QT源码编译和QT程序运行需要tslib库的支持),在虚拟机里使用交叉编译将QT源码编译安装,会生成arm环境的库文件和qmake,然后在虚拟机里安装qt的Linux版本,安装好后配置qt的编

    2023年04月08日
    浏览(42)
  • ESP 32 蓝牙虚拟键盘链接笔记本电脑的键值问题

    由于打算利用esp32 通过蓝牙链接电脑后实现一些特俗的键盘功能,所以就折腾了一下,折腾最耗费时间的却是键值问题,让一个20多年的老司机重新补充了知识 过程曲折就不说了,直接说结果。 我们通过网络搜索获取的键值和蓝牙模拟键盘传输的键值不是一回事。 键盘的键

    2024年02月14日
    浏览(62)
  • QT配置arm-linux-g++交叉编译器

    ubuntu16.4版本虚拟机 qt5.12.9版本 ,qt-everywhere-src-5.12.9(版本要一致,没试过版本不同是否可行) (qt5.15.2 qt5.14.2都装了下,按照以下流程都是完全没错误) arm-linux-g++4.8.3版本 由于最近接手公司离职员工的代码,通常我个人都是直接写Makefile来完成,对方用的Qt配合交叉编译器

    2024年01月19日
    浏览(47)
  • 嵌入式培训机构四个月实训课程笔记(完整版)-Linux ARM驱动编程第二天-ARM按键1*3矩阵键盘编程 (物联技术666)

    链接:https://pan.baidu.com/s/1E4x2TX_9SYhxM9sWfnehMg?pwd=1688 提取码:1688 1、键盘1*3的中断程序 //************************************************ #include \\\"2440addr.h\\\"           #include \\\"2440lib.h\\\" #include \\\"uart.h\\\" void __irq Eint2Handler(void); void __irq Eint3Handler(void); void __irq Eint4_7Handler(void); void EXIT_IRQ_init(int num

    2024年02月21日
    浏览(56)
  • 【ARM Coresight 系列文章 20 -- linux perf 与 ARM coresight】

    请阅读 【ARM Coresight SoC-400/SoC-600 专栏导读】

    2024年02月10日
    浏览(43)
  • Qt5.12.6配置Android Arm开发环境(Linux)

    1.安装jdk 2.安装android studio 3.安装sdk 与ndk  设置代理  安装SDK工具  安装SDK Platform 安装QT   选择JDK 1.8安装路径,SDK与NDK路径  如出现Platform SDK或者Platform Build Tools未安装,点击Update Installed  配置成功后可看到ARMv7与AMD-v8a kits Qt Version也可看到ARMv7与AMD-v8a   如果 有安装了CMake,也

    2024年01月21日
    浏览(51)
  • 嵌入式Linux:ARM驱动+QT应用+OpenCV人脸识别项目实现

            这个项目主要分为两部分,客户端(ARM板端)负责利用OpenCV采集人脸数据,利用TCP将人脸数据发送给服务器,然后服务器根据人脸数据进行人脸识别,将识别后的结果返还给客户端,客户端对人脸数据进行解析,得到正确的人脸数据后,打开门锁。门锁涉及硬件操作

    2024年02月10日
    浏览(44)
  • QT学习笔记-Linux ARM环境下实现QT程序通过ODBC驱动访问SQLServer数据库

    在嵌入式系统中使用QT开发上位机应用时不可避免的会涉及访问各种数据库的场景,而服务端数据库的种类则有多种可能(Oracle、Postgresql、MySql、SQLServer),本文就介绍一下如何实现在Linux Arm环境下实现QT程序通过ODBC驱动访问SQLServer数据库的。 开发环境操作系统:windows10专业

    2024年02月12日
    浏览(59)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包