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
2
3
git clone https://github.com/fcitx/fcitx-qt5
cd fcitx-qt5

1.2 安装必要依赖

编译过程中需要 CMake 扩展模块和键盘处理库:

1
2
sudo apt install extra-cmake-modules libxkbcommon-dev fcitx-libs-dev


2. 核心编译步骤(避坑指南)

很多教程提到的 export PATH 有时并不能让 CMake 找到正确的 Qt 路径。最稳妥的方法是在 cmake 命令中直接通过 -DCMAKE_PREFIX_PATH 指定你的 Qt 安装目录。

2.1 创建构建目录

1
2
3
mkdir build
cd build

2.2 执行 CMake 配置

注意: 请根据你的实际安装路径修改 DCMAKE_PREFIX_PATH。如果你的 Qt 安装在 /opt/Qt5.12.9,则指向其 gcc_64 文件夹。

1
2
3
4
5
cmake .. -DENABLE_LIBRARY=false \
-DCMAKE_PREFIX_PATH=/opt/Qt5.12.9/5.12.9/gcc_64 \
-DENABLE_QT4=false \
-DENABLE_QT6=false

  • -DENABLE_LIBRARY=false: 解决找不到 FcitxConfig.cmake 的报错,只编译插件。
  • -DCMAKE_PREFIX_PATH: 核心参数,让 CMake 精准定位 Qt5 的库和头文件。

2.3 执行编译

1
2
make

编译成功后,在 build/qt5/platforminputcontext/ 目录下会生成 libfcitxplatforminputcontextplugin.so 文件。


3. 安装与部署

由于 Qt Creator 编辑器本身和我们开发的程序使用不同的插件目录,建议执行“双重安装”。

3.1 自动安装(至 Qt 库目录)

执行 make install 可以自动将插件放置到编译环境路径下。因为安装在 /opt 目录下,需要 root 权限:

1
2
sudo make install

这将解决:你自己编写的 Qt 程序运行后无法输入中文的问题。

3.2 手动安装(至 Qt Creator 编辑器目录)

make install 通常覆盖不到编辑器自身的私有目录,需要手动拷贝:

1
2
sudo cp qt5/platforminputcontext/libfcitxplatforminputcontextplugin.so /opt/Qt5.12.9/Tools/QtCreator/lib/Qt/plugins/platforminputcontexts/

这将解决:Qt Creator 代码编辑器本身无法输入中文的问题。


4. 常见问题排查

4.1 Permission Denied

如果执行 make installcp 报错权限不足,请务必检查是否加了 sudo

4.2 插件版本不匹配 (Segmentation Fault)

如果你直接从系统 /usr/lib 下拷贝 .so 文件导致 Qt Creator 崩溃,说明 ABI 不兼容。必须使用你当前 Qt 版本对应的编译器和库进行手动编译(即本文所述方法)。

4.3 环境变量设置

如果安装后仍无法输入,尝试在启动前设置环境变量:

1
2
export QT_IM_MODULE=fcitx


5. 总结

解决 Linux 下 Qt 输入法问题的核心在于:环境对齐。使用对应版本的 Qt 库去编译对应的插件源码,并准确放置到 platforminputcontexts 目录下。


希望这份记录能帮你以后快速恢复环境!如果你输入法现在的“汉语(with AltGr…)”还没搞定,记得去系统设置里把那个奇怪的布局删掉,安装 fcitx 并在 Fcitx 框架里加“拼音”。

作者

GoKo Mell

发布于

2024-05-09

更新于

2026-05-09

许可协议

评论

:D 一言句子获取中...