问题描述:
在Linux系统中QtCreator不能切换成中文输入法。
背景知识:
Fcitx是 (Free Chinese Input Toy for X) 的英文缩写,中文名为小企鹅输入法,是一个以 GPL 方式发布的输入法框架, 编写它的目是为桌面环境提供一个灵活的输入方案,彻底解决在GNU/Linux下没有一个好的中文输入法的问题。
解决方法:
-
在GitHub上个下载fcitx插件源码,地址如下:https://github.com/fcitx/fcitx-qt5
下载fcitx输入法框架的源码到本地,且本地必须安装了cmake才能进行后续的编译输出。
-
修改根目录文件 CMakeLists.txt, 在"set(CMAKE_MODULE_PATH ${ECM_MODULE_PATH} ${ECM_KDE_MODULE_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/cmake)"行之后加入:
set(Qt5Core_DIR /XXX/Qt5.5.1/5.5/gcc_64/lib/cmake/Qt5Core/)
set(Qt5Gui_DIR /XXX/Qt5.5.1/5.5/gcc_64/lib/cmake/Qt5Gui/)
set(Qt5Widgets_DIR /XXX/Qt5.5.1/5.5/gcc_64/lib/cmake/Qt5Widgets/)
set(Qt5DBus_DIR /XXX/Qt5.5.1/5.5/gcc_64/lib/cmake/Qt5DBus/)
- 编译源码:
cmake .
make
sudo make install
同为麒麟系统,QT版本一样时,不用再进行编译,直接将libfcitxplatforminputcontextplugin.so库拷贝到对应的目录中即可。
库下载路径https://download.csdn.net/download/duck251/13212276
- 把编译得到 libfcitxplatforminputcontextplugin.so 拷贝到 Qt5.5安装目录的
/opt/Qt5.14.1/5.14.1/gcc_64/plugins/platforminputcontexts/
sudo cp libfcitxplatforminputcontextplugin.so /opt/Qt5.14.1/5.14.1/gcc_64/plugins/platforminputcontexts/
和
/opt/Qt5.14.1/Tools/QtCreator/lib/Qt/plugins/platforminputcontexts/
sudo cp libfcitxplatforminputcontextplugin.so /opt/Qt5.14.1/Tools/QtCreator/lib/Qt/plugins/platforminputcontexts/
下(拷贝之后记得加 755 权限) 。
sudo chmod 755 libfcitxplatforminputcontextplugin.so
目录位置注解
(1) /XXX/Qt5.14.1/5.14.1/gcc_64/plugins/platforminputcontexts/ 这个目录是用qt
creator编译出的程序运行时调用插件的目录,在编译出的程序下新建 plugins/platforminputcontexts/
目录,再将libfcitxplatforminputcontextplugin.so放进去也是可以的。
(2)/XXX/Qt5.14.1/Tools/QtCreator/lib/Qt/platforminputcontexts/ 这个目录是qt
creator自己调用插件的目录,所以要想在qt
creator中输入中文,libfcitxplatforminputcontextplugin.so库在这里也要放一个。
重启,QtCreator软件,即可输入中文了。
-
如果是用Qt编译的应用程序包,可将编译好的libfcitxplatforminputcontextplugin.so库直接放到plugins/platforminputcontexts/libfcitxplatforminputcontextplugin.so位置,然后重启机器,应该就可以输入中文了。
-
如果以上五部正确执行后,还是不能输入中文,则在 ~/.profile 或 /etc/profile 文件末尾添加:
export GTK_IM_MODULE=fcitx
export XIM_PROGRAM=fcitx
export XIM=fcitx
export QT_IM_MODULE=fcitx
export GTK_IM_MODULE=fcitx
export XMODIFIERS="@im=fcitx"
然后注销重启机器,这样就解决了不能输入中文的问题了。
参考文章:
解决Qt5应用在麒麟Linux下不能输入中文问题
https://blog.csdn.net/Shado_walker/article/details/58636752?utm_source=blogxgwz3
解决Qt5 Creator无法切换输入法(fcitx),Ubuntu中不能使用搜狗输入法录入汉字问题(各种编译错误,可以参考此文)
https://my.oschina.net/lieefu/blog/505363?p=3#comments