中文输入法无法在 QtCreator(Linux) 中输入汉字
中文输入法无法在 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 输入法不能使用的问题。
参考
- bug-report-comment-1
- cmake-configuration-1
- 500Days-Of-Github
- 解决 Debian 中 RStudio 和 Mendeley 下 Fcitx 输入法不能使用的问题
- A case study: how to compile a Fcitx platforminputcontext plugin for a proprietary software that uses Qt 5
- How to import CMake project in Qt Creator
中文输入法无法在 QtCreator(Linux) 中输入汉字的更多相关文章
- 在Linux中输入命令时打错并按了enter
今天在Linux中输入命令时,打错一个单词了,之后出现一串串的~,按ESC也没用, 并在底部出现:quit<enter> to exit vim 解决办法: 按几下 esc 确保 vim ...
- Linux mint 17中文输入法安装,改动linux mint与windows7双系统启动顺序
安装好linux mint17后,进入mint系统,首先须要一个比較合适的中文输入法. 一.首先迎来的就是安装中文输入法了,之前听说搜狗为ubuntu kinly定制了输入法,所以就想安装搜狗输入法, ...
- 【sublime】解决汉字输入的办法——InputHelper;在sublime中输入汉字==》InputHelper方法
手工安装办法: cd ~/.config/sublime-text-2/Packages #如果是sublime3就改一下 git clone https://github.com/xgenvn/I ...
- 在搜索引擎中输入汉字就可以解析到对应的域名,请问如何用LoadRunner进行测试。
建立测试计划,确定测试标准和测试范围 设计典型场景的测试用例,覆盖常用业务流程和不常用的业务流程等 根据测试用例,开发自动测试脚本和场景: 录制测试脚本:新建一个脚本(Web/HTML协议):点 ...
- Linux中输入命令按tab提示后会自动转义解决方案(xjl456852原创)
linux在命令行输入命令时,如果有$字符,按tab键时会自动在前面加入转义字符,反而达不到自己需要的效果. 例如: 在Centos7下,我要进入一个环境变量,并编辑一个文件: 比如我要进入$JAVA ...
- SQL SERVER 2008中输入汉字乱码的问题
搭建服务器时,系统是英文版windows server 2008 ,安装的中文语言包.安装SqlServer2008 后,数据库中文显示乱码. baidu 后,说是 排序规则 的问题.修改为 Chin ...
- 【原创】在RT1050 LittleVgl GUI中嵌入中文输入法框架
时隔一年多终于又冒泡了,哎,随着工作越来越忙,自己踏实坐下来写点东西真是越来越费劲,这篇文章也是准备了好久好久才打算发表出来(不瞒大家,东西做完好久了,文章憋了一年了,当真"高产" ...
- 如何在Ubuntu中安装中文输入法
在使用ubuntu系统时,有的时候总觉得英文输入法不方便操作,总希望能有中文输入法可以辅助操作,那怎样才能在ubuntu中安装中文输入法呢?下面有一种简单的方法可以安装中文输入法. 如何在ubuntu ...
- 移动APP 中文输入法下的搜索优化
最近做了一个移动端的搜索功能,带有suggest.实现上并没有什么可说的,但是在后续优化上,特别是在中文输入法的情况下的优化使我学到一些新东西,所以决定写一篇文章. 下面是我简化后的基本功能实现,监听 ...
随机推荐
- Partial关键字
Partial关键词定义的类可以在多个地方被定义,最后编译的时候会被当作一个类来处理. 首先看一段在C#中经常出现的代码,界面和后台分离,但是类名相同. public partial class Fo ...
- Dapper ORM
参考地址:https://www.cnblogs.com/lunawzh/p/6607116.html 1.连接语句 var conn = new SqlConnection(Configuratio ...
- arp欺骗进行流量截获-1
这边博文主要讲一下怎么使用arp欺骗进行流量截获,主要用于已经攻入内网以后,进行流量监听以及修改. 一.什么是arp arp协议是以太网的基础工作协议,其主要作用是是一种将IP地址转化成物理地 ...
- Spark JavaRDD、JavaPairRDD、Dataset之间的相互转换
主要内容: 1. JavaRDD to JavaPairRDD 2. Dataset to JavaPairRDD 3. JavaPairRDD to JavaRDD 4. JavaRDD to Da ...
- Python 简单说明与数据结构
Python 简单说明与数据结构 Python 作为 "国内" 较流行的高级语言,具有代码容易理解.专注解决问题.混合编译其他语言的优点. 变量 变量是一个最基本的储存单位,它暂时 ...
- Python中实现简单的插件框架
在系统设计中,经常我们希望设计一套插件机制,在不修改程序主体情况下,动态去加载附能. 我设想的插件系统: 1.通过类来实现 2.自动查找和导入 我们假设需要实现一个简单的插件系统,插件可以接收一个参数 ...
- 品味ZooKeeper之Watcher机制_2
品味ZooKeeper之Watcher机制 本文思维导图如下: 前言 Watcher机制是zookeeper最重要三大特性数据节点Znode+Watcher机制+ACL权限控制中的其中一个,它是zk很 ...
- 收藏的一些有意思的CSS加载样式
先看下效果 全部代码贴出,自己粘贴调试测试: <!DOCTYPE html> <html lang="en"> <head> <meta ...
- 【算法笔记】B1026 程序运行时间
1026 程序运行时间 (15 分) 要获得一个 C 语言程序的运行时间,常用的方法是调用头文件 time.h,其中提供了 clock() 函数,可以捕捉从程序开始运行到 clock() 被调用时所耗 ...
- Spring Boot 例一 实现jsonp接口
1.新建项目(选择quikstart) 2.增加spring boot 依赖 <dependency> <groupId>org.springframework.boot< ...