本人在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
echo "export PATH=${HOME}/Qt5.10.0/5.10.0/gcc_64/bin:${PATH}" >> ~/.bashrc && source ~/.bashrc
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 chmod 775 libfcitxplatforminputcontextplugin.so
参考资料:
1. http://www.cnblogs.com/xia-weiwen/p/6857237.html
2.https://my.oschina.net/lieefu/blog/505363