中文輸入法無法在 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 輸入法不能使用的問題。
