1,在虚拟机已经搭建好了交叉编译所需的环境,widget项目用qtcreator工具编译后,放到arm板上能正常运行;
2,基于1的情况下,我想在项目中添加qt自带的输入法,所以我在项目的main.cpp源文件中的main函数添加了这句代码qputenv("QT_IM_MODULE", QByteArray("qtvirtualkeyboard"));
3,基于2的情况下,我在虚拟机上把项目编译成在x86系统中运行的程序,程序运行后,可以正常调出qt自带的输入法。然后我对项目进行交叉编译,把编译好的程序再放到arm板上跑时,发现无法调出qt的输入法,这种情况各位有碰到过吗?
以下是我检查虚拟机和arm板两边的环境配置:




根据你的描述,我看出可能存在几个问题:
- ARM板上缺少qtvirtualkeyboard模块。qtvirtualkeyboard是Qt中的一个输入法模块,需要在ARM板上也安装这个模块,才能使用。你可以在Qt的安装目录中找到这个模块,交叉编译后拷贝到ARM板上。
- 环境变量设置问题。ARM板上需要正确设置QT_IM_MODULE环境变量,才能使用qtvirtualkeyboard模块。你需要在ARM板上设置:
export QT_IM_MODULE=qtvirtualkeyboard - 缺少输入法引擎插件。qtvirtualkeyboard模块依赖于qtivi输入法引擎,这也需要在ARM板上安装。你可以在Qt安装目录下找到qtivi,交叉编译后拷贝到ARM板上。
- 库路径设置问题。程序运行时需要找到qtvirtualkeyboard和qtivi等模块,所以需要确保ARM板上设置正确的库路径,包含这些模块。
我的建议是: - 确保ARM板上安装了qtvirtualkeyboard、qtivi等模块
- 设置QT_IM_MODULE和库路径环境变量
- 重新编译你的程序,链接到这些模块
- 在ARM板上运行你的程序,检查是否可以正常使用输入法
希望能解决你的问题。如有任何疑问,欢迎再回复我。
Claude Arm Linux+QT虚拟键盘怎么使用?
• qt
• linux
• arm
非常感谢您的回答和建议。我按照您说的,在arm板上做如下配置: - 把qt安装目录下的qtivi和qtvirtualkeyboard模块也交叉编译生成arm版本,并拷贝到arm板。
- 在arm板设置环境变量:
export QT_IM_MODULE=qtvirtualkeyboard
export LD_LIBRARY_PATH=/home/root/im-arm (im-arm为我拷贝qtivi和qtvirtualkeyboard模块的文件夹) - 重新在arm板上运行我的程序
现在虽然可以弹出qt的输入法面板,但是程序一运行,输入法面板就自动消失,我使用的开发板是i.MX6ULL,系统是Ubuntu 18.04 arm64位系统,qt版本是5.12.3,