找遍网上各种方法,终于解决了该问题,差点就想把Qt版本退回到Qt5.4以前的了。虽然都是linux系统,但是Ubuntu,和Centos的解决方案不同,Qt的版本不同解决方案也不同。找博客时间比较近的借鉴。
我的系统是Centos7,但是原理差不多,Ubuntu的也可以借鉴下。
有一点要注意的是,先查看自己输入法是ibus的还是fcitx的。后面再对应修改配置文件
或者输入echo $QT_IM_MODULE,查看
我的是iBus。不是以上两种输入法的,建议去安装或设置为其中一种。
一、Qt5.10下不支持中文输入的原因:
Qt的语言库,缺少支持中文输入的动态链接库。
我的Qt安装在/usr/local/Qt/
Qt Creator 会去以下目录寻找支持:
/usr/local/Qt/Tools/QtCreator/lib/Qt/plugins/platforminputcontexts
我们的应用程序会去以下目录寻找支持
/usr/local/Qt/5.10.1/gcc_64/plugins/platforminputcontexts
两个目录都不存在ibus或fcitx的动态链接库
所以我们需要在以上目录添加我们输入法的动态链接库(ibus或fcitx,我的是ibus,无需添加两个)再修改下/etc/profile文件就可以了。
二、解决方案
1、下载ibus,并复制到以上两个目录去。
yum install ibus-qt //安装ibus-qt
rpm -qa|grep ibus-qt //查找包名,找到包名为 ibus-qt-1.3.2-4.el7.x86_64
rpm -ql ibus-qt-1.3.2-4.el7.x86_64 //查找路径
找到有.so后缀的文件路径 /usr/lib64/qt4/plugins/inputmethods/libqtim-ibus.so 复制到Qt动态链接库的目录去:
cp /usr/lib64/qt4/plugins/inputmethods/libqtim-ibus.so /usr/local/Qt/Tools/QtCreator/lib/Qt/plugins/platforminputcontexts
cp /usr/lib64/qt4/plugins/inputmethods/libqtim-ibus.so /usr/local/Qt/5.10.1/gcc_64/plugins/platforminputcontexts
2、修改配置文件 vim /etc/profile
末尾添加以下内容:
export XIM_PROGRAM=iBus
export XIM=iBus
export GTK_IM_MODULE=iBus
export QT_IM_MODULE=iBus
export XMODIFIERS="@im=iBus"
输入法是fcitx的,将iBus替换为fcitx。
至此就可以输入中文了。