中文输入法无法在 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 中的打开项目:

然后就把这个 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

中文输入法无法在 QtCreator(Linux) 中输入汉字的更多相关文章

  1. 在Linux中输入命令时打错并按了enter

    今天在Linux中输入命令时,打错一个单词了,之后出现一串串的~,按ESC也没用, 并在底部出现:quit<enter> to exit vim 解决办法: 按几下 esc 确保 vim ...

  2. Linux mint 17中文输入法安装,改动linux mint与windows7双系统启动顺序

    安装好linux mint17后,进入mint系统,首先须要一个比較合适的中文输入法. 一.首先迎来的就是安装中文输入法了,之前听说搜狗为ubuntu kinly定制了输入法,所以就想安装搜狗输入法, ...

  3. 【sublime】解决汉字输入的办法——InputHelper;在sublime中输入汉字==》InputHelper方法

    手工安装办法: cd ~/.config/sublime-text-2/Packages  #如果是sublime3就改一下 git clone https://github.com/xgenvn/I ...

  4. 在搜索引擎中输入汉字就可以解析到对应的域名,请问如何用LoadRunner进行测试。

    建立测试计划,确定测试标准和测试范围 设计典型场景的测试用例,覆盖常用业务流程和不常用的业务流程等 根据测试用例,开发自动测试脚本和场景: 录制测试脚本:新建一个脚本(Web/HTML协议):点 ...

  5. Linux中输入命令按tab提示后会自动转义解决方案(xjl456852原创)

    linux在命令行输入命令时,如果有$字符,按tab键时会自动在前面加入转义字符,反而达不到自己需要的效果. 例如: 在Centos7下,我要进入一个环境变量,并编辑一个文件: 比如我要进入$JAVA ...

  6. SQL SERVER 2008中输入汉字乱码的问题

    搭建服务器时,系统是英文版windows server 2008 ,安装的中文语言包.安装SqlServer2008 后,数据库中文显示乱码. baidu 后,说是 排序规则 的问题.修改为 Chin ...

  7. 【原创】在RT1050 LittleVgl GUI中嵌入中文输入法框架

    时隔一年多终于又冒泡了,哎,随着工作越来越忙,自己踏实坐下来写点东西真是越来越费劲,这篇文章也是准备了好久好久才打算发表出来(不瞒大家,东西做完好久了,文章憋了一年了,当真"高产" ...

  8. 如何在Ubuntu中安装中文输入法

    在使用ubuntu系统时,有的时候总觉得英文输入法不方便操作,总希望能有中文输入法可以辅助操作,那怎样才能在ubuntu中安装中文输入法呢?下面有一种简单的方法可以安装中文输入法. 如何在ubuntu ...

  9. 移动APP 中文输入法下的搜索优化

    最近做了一个移动端的搜索功能,带有suggest.实现上并没有什么可说的,但是在后续优化上,特别是在中文输入法的情况下的优化使我学到一些新东西,所以决定写一篇文章. 下面是我简化后的基本功能实现,监听 ...

随机推荐

  1. SQL server 查询语句优先级-摘抄

    SQL 不同于与其他编程语言的最明显特征是处理代码的顺序.在大数编程语言中,代码按编码顺序被处理,但是在SQL语言中,第一个被处理的子句是FROM子句,尽管SELECT语句第一个出现,但是几乎总是最后 ...

  2. 一条命令深度清理你的mac

    一条命令深度清理你的mac mac 用了一段时间后很快发现硬盘空间不够了,就想找一些磁盘清理的工具,但是发现居然都是收费的. 就手工操作吧.方法其实非常简单. 就一条命令, cd / du -hd 5 ...

  3. 【01】循序渐进学 docker:到底是啥

    写在前面的话 首先说一下,我本身是做运维的,4 年工作,多家公司.所以可能接下来谈到的更多的是一些在工作过程中积累的个人看法.且有些并不具备普遍性,有不合适的地方,全当我在吹牛逼就行. 一开始我们得谈 ...

  4. Delphi XE8中Delphi和JAVA数据类型对应关系!

    Delphi XE8中Delphi和JAVA数据类型对应关系所在单元文件:Androidapi.JNI.JavaTypes 对应关系: JObject = interface;//java.lang. ...

  5. 如何安装memcached

    软件的下载,好像从官网上只能下载未经编译的源码,需要自己编译后才能安装使用,不熟悉的用户还是直接百度搜索下载比较好,这里也提供一个下载地址给大家参考. www.newasp.net/soft/6373 ...

  6. python爬虫的一些小小问题、python动态正则表达式

    1.首先urllib不能用了,需要引入的是urllib2,正则re. #coding=utf-8 # import urllib import urllib2 import re def getHtm ...

  7. MyBatis介绍及使用

    一.介绍: 1.MyBatis实际上是Ibatis3.0版本以后的持久化层框架[也就是和数据库打交道的框架]! 2.和数据库打交道的技术有: 原生的JDBC技术--->Spring的JdbcTe ...

  8. 如果将markdown视作一门编程语言可以做哪些有趣的事情?

    如题,然后就有了为解决这个好奇而开的项目:https://github.com/racaljk/llmd 源码主要是parser+interpreter,其中parser使用sundown,然后生成l ...

  9. ob系列函数归纳

     输出控制函数(output control函数) flush — 刷新输出缓冲ob_clean — 清空(擦掉)输出缓冲区ob_end_clean — 清空(擦除)缓冲区并关闭输出缓冲ob_end_ ...

  10. Application received signal SIGABRT

    Application received signal SIGABRT (null) (( 0 CoreFoundation 0x0000000182bbadc8 <redacted> + ...