QT编译fcitx-qt插件支持中文输入法
- 在Linux系统上会遇到Qt开发的程序无法输入中文的情况,原因就是因为输入法框架是采用的fcitx,而不是ibus,Qt默认只支持ibus输入法框架。
Linux 下 Qt5 (5.12.9) 编译 fcitx-qt5 插件支持中文输入法
在 Linux (Ubuntu 22.04) 系统上使用 Qt Creator 或运行 Qt 程序时,经常会遇到无法切换中文输入法的问题。这是因为 Linux 下常见的输入法框架是 fcitx,而 Qt 官方安装包默认通常只带了 ibus 的插件。
本文记录了在通过 .run 安装包安装了 Qt 5.12.9 的环境下,如何手动编译 fcitx-qt5 插件并成功配置。
1. 准备工作
1.1 下载源代码
确保克隆的是 fcitx-qt5 仓库:
1 | |
1.2 安装必要依赖
编译过程中需要 CMake 扩展模块和键盘处理库:
1 | |
2. 核心编译步骤(避坑指南)
很多教程提到的 export PATH 有时并不能让 CMake 找到正确的 Qt 路径。最稳妥的方法是在 cmake 命令中直接通过 -DCMAKE_PREFIX_PATH 指定你的 Qt 安装目录。
2.1 创建构建目录
1 | |
2.2 执行 CMake 配置
注意: 请根据你的实际安装路径修改 DCMAKE_PREFIX_PATH。如果你的 Qt 安装在 /opt/Qt5.12.9,则指向其 gcc_64 文件夹。
1 | |
-DENABLE_LIBRARY=false: 解决找不到FcitxConfig.cmake的报错,只编译插件。-DCMAKE_PREFIX_PATH: 核心参数,让 CMake 精准定位 Qt5 的库和头文件。
2.3 执行编译
1 | |
编译成功后,在 build/qt5/platforminputcontext/ 目录下会生成 libfcitxplatforminputcontextplugin.so 文件。
3. 安装与部署
由于 Qt Creator 编辑器本身和我们开发的程序使用不同的插件目录,建议执行“双重安装”。
3.1 自动安装(至 Qt 库目录)
执行 make install 可以自动将插件放置到编译环境路径下。因为安装在 /opt 目录下,需要 root 权限:
1 | |
这将解决:你自己编写的 Qt 程序运行后无法输入中文的问题。
3.2 手动安装(至 Qt Creator 编辑器目录)
make install 通常覆盖不到编辑器自身的私有目录,需要手动拷贝:
1 | |
这将解决:Qt Creator 代码编辑器本身无法输入中文的问题。
4. 常见问题排查
4.1 Permission Denied
如果执行 make install 或 cp 报错权限不足,请务必检查是否加了 sudo。
4.2 插件版本不匹配 (Segmentation Fault)
如果你直接从系统 /usr/lib 下拷贝 .so 文件导致 Qt Creator 崩溃,说明 ABI 不兼容。必须使用你当前 Qt 版本对应的编译器和库进行手动编译(即本文所述方法)。
4.3 环境变量设置
如果安装后仍无法输入,尝试在启动前设置环境变量:
1 | |
5. 总结
解决 Linux 下 Qt 输入法问题的核心在于:环境对齐。使用对应版本的 Qt 库去编译对应的插件源码,并准确放置到 platforminputcontexts 目录下。
希望这份记录能帮你以后快速恢复环境!如果你输入法现在的“汉语(with AltGr…)”还没搞定,记得去系统设置里把那个奇怪的布局删掉,安装 fcitx 并在 Fcitx 框架里加“拼音”。
QT编译fcitx-qt插件支持中文输入法
https://goko-son626.github.io/post/QT编译fcitx-qt插件支持中文输入法.html

