Qt5虚拟键盘移植

本文介绍了在Qt5环境下移植虚拟键盘的过程,包括尝试官方库的复杂性以及采用第三方库的解决方案。虽然找到的第三方库可能有些陈旧,但在目前的使用中仍能应对大多数场景。然而,虚拟键盘在弹出时占据屏幕大部分空间,可能影响输入体验,这是未来需要改进的一个方向。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Qt5 虚拟键盘移植

Qt 在移植到 arm 之后,是天然支持触摸的(模拟鼠标),但是却没有自带虚拟键盘。明明就是为了摆脱麻烦的鼠标、键盘外设,才用的触摸屏,难不成还要加一个键盘?
那肯定不行,虚拟键盘移植走起。

1 移植官方库

移植官方的 qtvirtualkeyboard,不得不说,很麻烦。该模块依赖与 Qt 的 quick 和 svg 模块,光是这两个模块,我就研究了半天,无果。

参考文章:
s5p4418 qt5.7.1移植与虚拟键盘修改

2 移植第三方库

其实 Qt 虚拟键盘的第三方库,网上的资料倒是有不少,但大部分都在一些论坛或者CSND的付费下载里面。
不过很幸运的是,在 gitee 里寻找资料时,找到了 Qt 虚拟键盘的代码库,可以直接编译移植。

虚拟键盘
需要注意的是,该库在几年前就没有新的提交了,作者也没有详细说明其虚拟键盘的完成度和 bug ,不过就当前的使用情况看,应付大部分场景应该是没有问题。

参考文章:

### 如何在 Ubuntu 上使用 Qt 实现或调用虚拟键盘 #### 安装必要的依赖项 为了确保能够正常使用Qt虚拟键盘功能,需要确认已安装了相应版本的Qt及其插件。Qt内置虚拟键盘仅能在5.7及以上版本中使用,并且需要`Qt Virtual Keyboard`插件的支持[^1]。 对于通过包管理器如apt安装Qt的情况,应将生成的`libQt5VirtualKeyboard.so`文件放置于指定路径下以完成插件加载。具体操作命令如下所示: ```bash sudo cp libQt5VirtualKeyboard.so /usr/lib/x86_64-linux-gnu/qt5/plugins/virtualkeyboard/ ``` 请注意实际库名可能略有不同,请根据实际情况调整[^2]。 #### 启动前配置环境变量 为了让应用程序识别并启用虚拟键盘模块,在创建`QApplication`实例之前设置环境变量是非常重要的一步。这可以通过下面这段代码来实现: ```cpp #if (QT_VERSION >= QT_VERSION_CHECK(5, 7, 0)) qputenv("QT_IM_MODULE", QByteArray("qtvirtualkeyboard")); #endif ``` 上述代码片段应该被加入到程序入口处,即main函数内位于`QApplication a(argc, argv)`语句之前的位置[^3]。 #### 编译自定义软键盘(可选) 如果希望定制化自己的软键盘,则可以从源码开始构建。针对特定需求修改后的软键盘项目同样遵循标准CMake流程进行编译链接工作。以下是基本步骤之一——清理旧有编译产物以便重新编译新改动的部分: ```bash make distclean ``` 这一过程适用于任何想要更新现有软键盘或是从头开发全新界面的情形[^4]。 #### 跨平台考虑事项 考虑到不同操作系统之间的差异性,设计时尽可能利用Qt框架本身提供的特性而非依赖具体的系统APIs。这样做的好处是可以更容易地移植应用至其他平台上运行而不必担心底层实现细节的变化影响整体逻辑[^5]。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值