案例分享:Qt中英文输入法、Qt中文输入法虚拟键盘、软键盘(支持Qt4、Qt5、Qt6触摸和键鼠混合输入,支持麒麟系统)

若该文为原创文章,转载请注明原文出处
本文章博客地址:https://blog.csdn.net/qq21497936/article/details/111831179

长沙红胖子Qt(长沙创微智科)博文大全:开发技术集合(包含Qt实用技术、树莓派、三维、OpenCV、OpenGL、ffmpeg、OSG、单片机、软硬结合等等)持续更新中…

合作案例专栏:案例分享(体验Demo可下载,只定制)


需求

  1. 全屏软键盘;
  2. 输入英文;
  3. 输入中文;
  4. 支持触摸、键盘和输入混合输入;
  5. 目前有黑色系皮肤;
  6. Qt4和Qt5区分2个版本;
  7. 兼容国产麒麟系统;


补充

  整体代码是重构版本,代码风格好,所见即所得。
  将代码和可视化界面进行分离,直接设计器可以修改布局,用代码修改键盘,方便之后的二次定制开发。


追加需求(2024年06月28日)

  1.Qt5版本兼容Qt6(下载的资源是Qt5的,没有更新支持Qt6的运行版本了),需要可联系。


追加需求(2024年07月14日)

  1.兼容麒麟系统。


相关博客

  《案例分享:Qt中英文输入法、Qt中文输入法虚拟键盘、软键盘(支持Qt4、Qt5、Qt6触摸和键鼠混合输入,支持麒麟系统)
  《案例分享:Qt多国语言输入法软键盘


Demo:国产麒麟

  在这里插入图片描述
在这里插入图片描述


Demo:Qt6

  
在这里插入图片描述
  在这里插入图片描述


Demo:Qt5

  在这里插入图片描述
  在这里插入图片描述
  在这里插入图片描述
  CSDN(粉丝免积分下载):https://download.csdn.net/download/qq21497936/13945327
  QQ群:1047134658(点击“文件”搜索“softKeyboard”,群内与博文同步更新)


Demo:Qt4

  移植到MCGS嵌入式工控机上
  在这里插入图片描述
  在这里插入图片描述


arm下部署注意

注意依赖文件夹的拷贝

  在其本身Qt的依赖外,还需要额外复制两个文件夹到目标应用文件夹下:
  在这里插入图片描述
  在这里插入图片描述

  其中,dict是词典数据库,输入法输入中文的时候会调用该文件夹的词典(少数客户出现键盘有则没有词库,无法中文出来就是这个文件夹得文件没拷贝,记得检查与原始文件得大小,确保拷贝过去之后和原始文件一样大小)。
  platforminputcontexts是输入法的平台插件,此插件才可以弹出虚拟键盘(少数客户出现键盘无法弹出,因为里面有连接文件,推荐压缩包或者copy -arf拷贝文件夹)。
  以上这2个文件夹需要复制,一般都可以了。

拷贝之后还不行,检查拷贝文件

  因为交叉编译的出来的是四个文件,拷贝的时候有可能只能拷贝实体文件(跟linux的copy机制有关系)
  在这里插入图片描述
  这是交叉编译生成的:
  在这里插入图片描述
  对于不了解系统读者,解释下:linux下一般是.so 连接到 .so.1 连接到.so.1.0 连接到so.1.0.0,系统查找的是.so,以此来连接到具体某个版本的库,一般只有.so.x.x.x是实体,这点注意。(本质是要连接到实体文件,左边三个是依次软链接的)。
  有时候系统问题,无法拷贝如下:
  在这里插入图片描述
  则可以将copy过去的libplatformInputContext.so.1.1.0改为libplatformInputContext.so来让系统连接到即可。

以上都确认还不行(如果还不行,请重新删除并重走前面2个方法至少一次用以确认,还不行则继续看本条)

  如果还不行,就是嵌入式系统本身部署的库不全,因为platforminputcontexts里面的插件本身也是依赖很多库的:
  在这里插入图片描述
  建议一刀切给这个插件的依赖库打一次包,具体方式可参考:《统信UOS系统开发笔记(七):在统信UOS系统上使用linuxdeployqt发布qt程序》中的“linuxdeployqt打包流程(arm看可以,本次pc版本失败)”打包章节,使用手动添加QMAKE_RPATHDIR编译建立qt.conf的方式。


V1.2.0

ui界面

  在这里插入图片描述

代码风格

  在这里插入图片描述

  在这里插入图片描述


若该文为原创文章,转载请注明原文出处
本文章博客地址:https://blog.csdn.net/qq21497936/article/details/111831179

软键盘是一种虚拟输入设备,它可以在屏幕上显示出来,用户可以通过触摸屏幕上的按键来输入文字。在Qt开发中,软键盘可以被作为一个部件来实现,以支持中英文输入。 首先,我们需要定义软键盘的布局。这可以通过Qt提供的各种部件(如QLabel、QPushButton等)和布局管理器(如QGridLayout、QVBoxLayout、QHBoxLayout等)来实现。通过将这些部件放置在一个QWidget中,并将其设置为QWidget的子部件,我们就可以得到一个可自由调整大小并在屏幕上显示的软键盘。 其次,我们需要定义软键盘输入行为。这可以通过为软键盘的按钮定义信号槽(或回调函数)来完成。在每次按钮被按下时,软键盘应该将相应的字符输入到客户端应用程序中。对于中英文输入,我们可以使用QInputMethod类来完成输入法的切换,并根据当前输入法状态将相应的字符输入到客户端应用程序中。 最后,我们需要将软键盘部件与客户端应用程序连接起来。在Qt中,部件之间的交互可以通过信号槽机制来完成。我们可以定义一个信号,为软键盘中的按钮连接该信号,当按钮被按下时,该信号会被发射。客户端应用程序中会定义一个槽函数来接收该信号,并将相应的字符输入到编辑框中。 综上所述,通过以上三个步骤,我们可以在Qt中实现一个支持中英文输入软键盘部件。这个软键盘部件可以被集成到客户端应用程序中,并提供用户在不同场景下的方便输入体验。
评论 26
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

长沙红胖子Qt(长沙创微智科)

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值