中文输入法无法在 QtCreator(Linux) 中输入汉字
环境
- system: Deepin 15.7
- Qt Creator 4.7.0 (GCC 5.3.1)
解决方法
- 下载 fcitx-qt5 源码,并进入相应目录:
$ git clone https://github.com/fcitx/fcitx-qt5.git
$ cd fcitx-qt5
- 安装 cmake,并运行:
$ sudo apt install cmake
$ cmake ./
- 如出现类似 “Could not find a package configuration file provided by "ECM" (requested
version 1.4.0)” 这样的错误,使用命令安装sudo apt install extra-cmake-modules
后再执行第二步。
但是这样安装的版本是最新的,建议安装 1.4.0 版本:
$ wget https://launchpad.net/ubuntu/+archive/primary/+sourcefiles/extra-cmake-modules/1.4.0-0ubuntu1/extra-cmake-modules_1.4.0.orig.tar.xz
$ tar xvf extra-cmake-modules_1.4.0.orig.tar.xz
$ cd extra-cmake-modules_1.4.0.orig.tar.xz
$ cmake .
$ make
$ sudo make install
- 如果出现 “Could NOT find XKBCommon_XKBCommon (missing: XKBCommon_XKBCommon_LIBRARY XKBCommon_XKBCommon_INCLUDE_DIR) (found version "")” 这样的错误,使用命令安装
sudo apt install libxkbcommon-dev
后再执行第二步。同样的,建议安装 0.5.0 版本:
$ wget http://xkbcommon.org/download/libxkbcommon-0.5.0.tar.xz
$ tar xf libxkbcommon-0.5.0.tar.xz
$ cd libxkbcommon-0.5.0
$ ./configure --prefix=/usr --disable-x11
$ make
$ sudo make install
最后出现提示:
-- Configuring done
-- Generating done
-- Build files have been written to: /home/future/src/fcitx-qt5
就说明 cmake 完成。
- 执行命令:
$ make
$ sudo make install
Everything done.
但是,如果运行 sudo make install
的命令失败,像我一样出现这样的提示:
AutoMoc subprocess error
------------------------
The moc process failed to compile
"/home/future/src/fcitx-qt5/platforminputcontext/main.h"
into
"/home/future/src/fcitx-qt5/platforminputcontext/fcitxplatforminputcontextplugin_autogen/EWIEGA46WW/moc_main.cpp".
那么你需要其他的方法来构建 fcitx 插件了。我从 A case study: how to compile a Fcitx platforminputcontext plugin for a proprietary software that uses Qt 5 这篇文章中受到启发,使用已经安装好的 Qt5.9 和 Qt Creator
编译 fcitx-qt5 项目,最终成功编译得到 platforminputcontext/libfcitxplatforminputcontextplugin.so 库文件。
步骤,选择 QtCreator 中的打开项目:
然后就把这个 cmake 项目当成普通的 qt 项目编译,最终在 build-fcitx/platforminputcontext/
目录下面就能够看到构建好的 libfcitxplatforminputcontextplugin.so
文件。
最后需要把库文件复制到相应的文件夹中,经过几次尝试后,我把上述库文件放到 ${Qt_InstallDir}/Tools/QtCreator/lib/Qt/plugins/platforminputcontexts
目录下面,最后就可以在 Qt Creator 中输入中文了。
如果还有其他的问题,建议参考 500Days-Of-Github 和 解决 Debian 中 RStudio 和 Mendeley 下 Fcitx 输入法不能使用的问题。