Ubuntu 17.04系统中QT5.9.2支持fcitx输入法的解决方案

本人在Ubuntu 17.04系统中安装了QT 5.9.2,自带Qt Creator 4.4.1,各方面用着都挺顺手,但有一次突然发现在Qt Creator中和使用QT编译的程序运行时均不能使用Ubuntu系统自带的fcitx输入法。上网一查,原来是因为fcitx输入法不兼容QT。

网上一些过时文章,介绍的方法一般如下(如果照着做,肯定没有任何效果):

使用sudo apt-get install命令安装fcitx-libs-qt5,在计算机中搜索libfcitxplatforminputcontextplugin.so文件(安装时如果不改变路径,一般为:/usr/lib/x86_64-linux-gnu/qt5/plugins/platforminputcontexts/libfcitxplatforminputcontextplugin.so),将该文件复制到Qt安装目录下的platforminputcontexts子目录中((注意:不同Qt版本的安装路径可能不相同,例如:在我的机器上,Qt 5.9.2的安装路径为:/opt/Qt5.9.2/5.9.2,而Qt 5.10.0的安装路径则为:${HOME}/Qt5.10.0/5.10.0/,其中${HOME}是我的home目录。因此,需要你自己正确查找Qt的安装位置,这里以Qt 5.9.2为例:/opt/Qt5.9.2/5.9.2/gcc_64/plugins/platforminputcontexts),重新使用Qt编译的程序就能正常使用fcitx输入法;将libfcitxplatforminputcontextplugin.so文件复制QtCreator安装目录下的platforminputcontexts子目录中(安装时如果不改变路径,一般为:/opt/Qt5.9.2/Tools/QtCreator/lib/Qt/plugins/platforminputcontexts),重启QtCreator就可以正常使用fcitx输入法。

旧办法失效的原因在于使用apt-get install命令安装的fcitx-libs-qt5版本太老,自带的libfcitxplatforminputcontextplugin.so 与Qt 5.4以后的版本不兼容,因而需要重新编译fcitx-qt5,编译方法如下:

1. 安装依赖库

sudo apt-get install cmake fcitx-libs-dev libgl1-mesa-dev libglu1-mesa-dev libxkbcommon-dev


2. 设置Qt环境变量(注意:不同Qt版本的安装路径可能不相同,例如:在我的机器上,Qt 5.9.2的安装路径为:/opt/Qt5.9.2/5.9.2,而Qt 5.10.0的安装路径则为:${HOME}/Qt5.10.0/5.10.0/,其中${HOME}是我的home目录。因此,需要你自己正确查找Qt的安装位置)

echo "export PATH=${HOME}/Qt5.10.0/5.10.0/gcc_64/bin:${PATH}" >> ~/.bashrc && source ~/.bashrc


3. 下载fcitx-qt5源码:

git clone https://github.com/fcitx/fcitx-qt5


4. 编译安装(我将fcitx-qt5源码下载到/home/davidhopper目录中,这个需要根据自己的实际路径加以更改)
cd /home/davidhopper/fcitx-qt5
cmake .

make

sudo make install

如果执行cmake . 时出错,请参考https://my.oschina.net/lieefu/blog/505363中的方法加以解决。在我的电脑里,就遇到了如下错误:

CMake Error at CMakeLists.txt:8 (find_package):
  Could not find a package configuration file provided by "ECM" (requested
  version 1.4.0) with any of the following names:
    ECMConfig.cmake
    ecm-config.cmake
  Add the installation prefix of "ECM" to CMAKE_PREFIX_PATH or set "ECM_DIR"
  to a directory containing one of the above files.  If "ECM" provides a
  separate development package or SDK, be sure it has been installed.
-- Configuring incomplete, errors occurred!

解决方法:

到此网站:https://launchpad.net/ubuntu/+source/extra-cmake-modules/1.4.0-0ubuntu1下载: extra-cmake-modules_1.4.0.orig.tar.xz,解压到适合的目录,执行下述命令安装:

cd extra-cmake-modules-1.4.0
cmake .
make

sudo make install

之后,继续执行第4步。

注意:安装较新版本的WPS后,若在修改*.doc, *.xls, *.ppt等文件时,无法使用中文输入法,也是因为在WPS内部使用了Qt 5.4以上版本的控件所造成,只要顺利完成第4步,重新打开WPS程序后,就可以正常使用中文输入法。

5.将fcitx-qt5/platforminputcontext/目录下的libfcitxplatforminputcontextplugin.so 文件复制到Qt安装目录下的platforminputcontexts子目录中(安装时如果不改变路径,一般为:/opt/Qt5.9.2/5.9.2/gcc_64/plugins/platforminputcontexts),重新使用Qt编译的程序就能正常使用fcitx输入法;将libfcitxplatforminputcontextplugin.so文件复制QtCreator安装目录下的platforminputcontexts子目录中(安装时如果不改变路径,一般为:/opt/Qt5.9.2/Tools/QtCreator/lib/Qt/plugins/platforminputcontexts),重启QtCreator就可以正常使用fcitx输入法,具体命令如下:

cd /opt/Qt5.9.2/Tools/QtCreator/lib/Qt/plugins/platforminputcontexts/
sudo cp /home/davidhopper/fcitx-qt5/platforminputcontext/libfcitxplatforminputcontextplugin.so .
sudo chmod 775 libfcitxplatforminputcontextplugin.so

cd /opt/Qt5.9.2/5.9.2/gcc_64/plugins/platforminputcontexts
sudo cp /home/davidhopper/fcitx-qt5/platforminputcontext/libfcitxplatforminputcontextplugin.so .

sudo chmod 775 libfcitxplatforminputcontextplugin.so


参考资料:

1. http://www.cnblogs.com/xia-weiwen/p/6857237.html

2.https://my.oschina.net/lieefu/blog/505363









  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值