https://github.com/fcitx/fcitx-qt5
Ubuntu16.04下qtcreator 3.6.1不能输入中文(fcitx)
2016年05月25日 09:34:39 莫急莫慌 阅读数:985
在ubuntu16..04下安装Qt5.6,qtcreator 3.6.1后,发现不能输入中文,在网上搜索了一下发现现有解决办法或因版本号不对或因过程复杂都未能解决问题。
http://my.oschina.net/u/219482/blog/341452
该博客中的方法可以未能完全解决问题,需要做稍微修改,应该是新版本文件存放的目录有所改变。
摘自上面的博客:
1.安装fcitx-frontend-qt5
sudo apt-get install fcitx-frontend-qt5
2.将安装后的fcitx-frontend-qt5复制到qt安装目录
通常,fcitx-frontend-qt5在下面的目录路径中(可用命令dpkg -L 包名看文件安装路径):
/usr/lib/x86_64-linux-gnu/qt5/plugins/platforminputcontexts/libfcitxplatforminputcontextplugin.so
将该文件复制到
qt安装目录//Tools/QtCreator/bin/plugins/platforminputcontexts
和
qt安装目录/5.3/gcc_64/plugins/platforminputcontexts
中
重新打开 QtCreator,终于可以输入中文了。
如果还是不行,重启电脑,再打开Qtcreator,就可以了
实际操作时发现第二步中的目录/Tools/QtCreator/bin/plugins/platforminputcontexts在qtcreator3.6.1中是不存在的,但可以将该目标变为
/Tools/QtCreator/lib/Qt/plugins/platforminputcontexts
如此便能解决在Qtcreator3.6.1中无法输入中文的问题。
ubuntu16.04下fcitx无法在QT Creator输入中文解决办法
我的博客新地址:www.liuquanhao.com
------------------------------------------------------
Qt creator无法用fcitx输入中文的原因是自己的plugins目录下没有fcitx的插件,所有只要把插件复制到里面就可以了。
qt creator插件目录:qt安装目录/Tools/QtCreator/lib/Qt/plugins/platforminputcontexts。
需要的fcitx输入法插件文件:libfcitxplatforminputcontextplugin.so
解决方法:
使用dpkg查找插件文件,fcitx在fcitx-frontend-qt5中,没有就用apt安装即可。
$ dpkg -L fcitx-frontend-qt5 | grep .so
/usr/lib/x86_64-linux-gnu/qt5/plugins/platforminputcontexts/libfcitxplatforminputcontextplugin.so
然后复制这个文件到QT Creator目录:
$ cd qt安装目录/Tools/QtCreator/lib/Qt/plugins/platforminputcontexts/
$ cp /usr/lib/x86_64-linux-gnu/qt5/plugins/platforminputcontexts/libfcitxplatforminputcontextplugin.so .
$ chomd +x libfcitxplatforminputcontextplugin.so
然后重启QT Creator即可输入中文。
---------------------------------------------------------------
编译程序后程序无法输入中文问题,也是缺少插件的原因。
$ cd QT安装目录/5.8/gcc_64/plugins/platforminputcontexts
$ cp /usr/lib/x86_64-linux-gnu/qt5/plugins/platforminputcontexts/libfcitxplatforminputcontextplugin.so .
$ chomd +x libfcitxplatforminputcontextplugin.so
然后重新编译即可。
转
Qt5中文输入的问题
2016年05月31日 00:08:19 张京林要加油 阅读数:6652 标签: qt中文输入fcitx-qt5Qt5-5 更多
一、前言
本博客是为了解决在Qt5.4和Qt5.5下的中文输入问题,博主所用的Qt版本是Qt5.5.1,中文输入法是搜狗输入法,操作系统是ubuntu 14.04
Qt5.3及以前的版本可以通过复制/usr/lib/x86_64-linux-gnu/qt5/plugins/platforminputcontexts/
下的libfcitxplatforminputcontextplugin.so
到Qt5.3.1/5.3/gcc_64/plugins/platforminputcontexts
和/Qt5.3.1/Tools/QtCreator/bin/plugins/platforminputcontexts
解决Qt下的中文输入问题,但是Qt5.4和Qt5.5,旧办法失效,原因是Qt5.4后对之前Qt5版本不再二进制兼容,libfcitxplatforminputcontextplugin.so
需要编译最新的fcitx-qt5。
博主编译的libfcitxplatforminputcontextplugin.so可以下载使用,但是要记得给这个文件可执行权限
参考lieefu的博客:
解决Qt5 Creator无法切换输入法(fcitx),Ubuntu中不能使用搜狗输入法录入汉字问题
二、从源码编译fcitx-qt5
安装cmake和fcitx-libs-dev:
$ sudo apt-get install cmake
$ sudo apt-get install fcitx-libs-dev
- 1
- 2
根据Qt安装路径设置qmake的环境变量:
$ export PATH="/home/zjl/Qt5.5.1/5.5/gcc_64/bin":$PATH
- 1
从github:fcitx/fcitx-qt5下载源码:
$ cd work/
$ git clone https://github.com/fcitx/fcitx-qt5
- 1
- 2
开始编译:
$ cd work/fcitx-qt5/
$ cmake .
$ make
$ sudo make install
- 1
- 2
- 3
- 4
- 这时候会发现一个关于ECM的报错:
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!
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
到这个页面 https://launchpad.net/ubuntu/+source/extra-cmake-modules/1.4.0-0ubuntu1 下载 extra-cmake-modules_1.4.0.orig.tar.xz
解压后编译安装:
$ cd work/extra-cmake-modules-1.4.0/
$ cmake .
$ make
$ sudo make install
- 1
- 2
- 3
- 4
- 如果有如下报错
CMake Error at /home/lieefu/Qt5.5.0/5.5/gcc_64/lib/cmake/Qt5Gui/Qt5GuiConfigExtras.cmake:9 (message):
Failed to find "GL/gl.h" in "/usr/include/libdrm".
- 1
- 2
安装如下包:
$ sudo apt-get install libgl1-mesa-dev libglu1-mesa-dev
- 1
如有如下报错:
CMake Warning at tests/CMakeLists.txt:28 (find_package):
Could not find a package configuration file provided by "Qt5LinguistTools"
with any of the following names:
Qt5LinguistToolsConfig.cmake
qt5linguisttools-config.cmake
Add the installation prefix of "Qt5LinguistTools" to CMAKE_PREFIX_PATH or
set "Qt5LinguistTools_DIR" to a directory containing one of the above
files. If "Qt5LinguistTools" provides a separate development package or
SDK, be sure it has been installed.
-- Looking for Sphinx Documentation Builder...
-- Sphinx Documentation Builder not found - documentation will not be built (see http://sphinx-doc.org/)
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
按照报错提示将Qt5LinguistTools所在路径添加到环境变量CMAKE_PREFIX_PATH:
$ export CMAKE_PREFIX_PATH="/home/siat/Qt5.5.1/5.5/gcc_64/lib/cmake"
- 1
- 关于XKBCommon的报错
-- Found PkgConfig: /usr/bin/pkg-config (found version "0.26")
-- Could NOT find XKBCommon_XKBCommon (missing: XKBCommon_XKBCommon_LIBRARY XKBCommon_XKBCommon_INCLUDE_DIR)
CMake Error at /usr/share/cmake-2.8/Modules/FindPackageHandleStandardArgs.cmake:108 (message):
Could NOT find XKBCommon (missing: XKBCommon_LIBRARIES XKBCommon) (Required
is at least version "0.5.0")
- 1
- 2
- 3
- 4
- 5
解决办法是安装如下软件包:
$ sudo apt-get install bison
$ cd work/
$ 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 --libdir=/usr/lib/x86_64-linux-gnu --disable-x11
$ make
$ sudo make install
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
这里需要注意的是lieefu的博客./configure
后面带参数的时候格式写错了,参数前缀是--
而不是—
,另外运行./configure
需要cd libxkbcommon-0.5.0/
文件夹。
装完上面这些之后再重新回到fcitx-qt5进行编译
$ cd work/fcitx-qt5/
$ cmake .
$ make
$ sudo make install
- 1
- 2
- 3
- 4
最终我们需要的libfcitxplatforminputcontextplugin.so
文件在/work/fcitx-qt5/platforminputcontext
三、替换libfcitxplatforminputcontextplugin.so
文件
接下来我们只需要将libfcitxplatforminputcontextplugin.so
复制到Qt5.5.1/Tools/QtCreator/bin/plugins/platforminputcontexts/
和 Qt5.5.1/5.5/gcc_64/plugins/platforminputcontexts/
即可。
为了方便操作,我们将libfcitxplatforminputcontextplugin.so
文件复制到主文件夹~/
下,然后运行如下命令
$ cd Qt5.5.1/Tools/QtCreator/bin/plugins/platforminputcontexts/
$ sudo rm libfcitxplatforminputcontextplugin.so
$ sudo cp ~/libfcitxplatforminputcontextplugin.so .
$ sudo chmod +x libfcitxplatforminputcontextplugin.so
$ cd Qt5.5.1/5.5/gcc_64/plugins/platforminputcontexts/
$ sudo rm libfcitxplatforminputcontextplugin.so
$ cp ~/libfcitxplatforminputcontextplugin.so .
$ sudo chmod +x libfcitxplatforminputcontextplugin.so
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
注意不要漏掉了cp
命令末尾的.
号,rm
命令是为了删除旧的libfcitxplatforminputcontextplugin.so
,另外还需要注意根据自己的Qt安装路径和版本确定platforminputcontexts
文件夹的路径
替换文件之后重新打开Qt就可以在里面Ctrl+空格切换搜狗中文输入法了
如果切换搜狗输入法之后还是无法输入中文就重启一下电脑(不知道为啥,博主的笔记本就是这类干啥都要重启或重开的,另一台台式机不过改啥改完之后不需要重启立马就能用,真是忧伤)