Arm Linux+QT虚拟键盘怎么使用?

1,在虚拟机已经搭建好了交叉编译所需的环境,widget项目用qtcreator工具编译后,放到arm板上能正常运行;

2,基于1的情况下,我想在项目中添加qt自带的输入法,所以我在项目的main.cpp源文件中的main函数添加了这句代码qputenv("QT_IM_MODULE", QByteArray("qtvirtualkeyboard"));

3,基于2的情况下,我在虚拟机上把项目编译成在x86系统中运行的程序,程序运行后,可以正常调出qt自带的输入法。然后我对项目进行交叉编译,把编译好的程序再放到arm板上跑时,发现无法调出qt的输入法,这种情况各位有碰到过吗?

以下是我检查虚拟机和arm板两边的环境配置:

img

img

img

img

根据你的描述,我看出可能存在几个问题:

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