中文输入法无法在 QtCreator(Linux) 中输入汉字

中文输入法无法在 QtCreator(Linux) 中输入汉字

环境

  • system: Deepin 15.7
  • Qt Creator 4.7.0 (GCC 5.3.1)

解决方法

  1. 下载 fcitx-qt5 源码,并进入相应目录:
$ git clone https://github.com/fcitx/fcitx-qt5.git
$ cd fcitx-qt5
  1. 安装 cmake,并运行:
$ sudo apt install cmake
$ cmake ./
  1. 如出现类似 “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
  1. 如果出现 “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 完成。

  1. 执行命令:
$ 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 中的打开项目:

open-cmake-project

然后就把这个 cmake 项目当成普通的 qt 项目编译,最终在 build-fcitx/platforminputcontext/ 目录下面就能够看到构建好的 libfcitxplatforminputcontextplugin.so 文件。

最后需要把库文件复制到相应的文件夹中,经过几次尝试后,我把上述库文件放到 ${Qt_InstallDir}/Tools/QtCreator/lib/Qt/plugins/platforminputcontexts 目录下面,最后就可以在 Qt Creator 中输入中文了。

如果还有其他的问题,建议参考 500Days-Of-Github解决 Debian 中 RStudio 和 Mendeley 下 Fcitx 输入法不能使用的问题

参考

  1. bug-report-comment-1
  2. cmake-configuration-1
  3. 500Days-Of-Github
  4. 解决 Debian 中 RStudio 和 Mendeley 下 Fcitx 输入法不能使用的问题
  5. A case study: how to compile a Fcitx platforminputcontext plugin for a proprietary software that uses Qt 5
  6. How to import CMake project in Qt Creator
posted @ 2018-09-12 13:03  brifuture  阅读(4841)  评论(0编辑  收藏  举报