问题
在Linux环境(例如Ubuntu)下,Qt Creator中不能在诸如输入框、文本框中输入中文(不会激活中文输入法)。注意与输入法类型有关(基于iBus或Fcitx)。
原因
Qt程序的中文输入支持需要用Qt插件,Qt自带的插件中,支持iBus输入法,所以如果你恰好在用iBus输入法则可以正常输入。如果要支持Fcitx输入法,需要插件支持(libfcitxplatforminputcontextplugin.so)。
获取动态库
- 查找本机libfcitxplatforminputcontextplugin.so文件位置(如果找不到参考步骤:编译动态库)
[root@Kylin-Server-SP2 ~]# find / -name "libfcitxplatforminputcontextplugin.so"
/usr/lib64/qt5/plugins/platforminputcontexts/libfcitxplatforminputcontextplugin.so
[root@Kylin-Server-SP2 ~]#
复制libfcitxplatforminputcontextplugin.so文件到本机Qt安装路径下的这两个位置
Qt5.X.X/Tools/QtCreator/lib/Qt/plugins/platforminputcontexts/(qtCreater里输入中文) Qt5.X.X/5.X.X/gcc_64/plugins/platforminputcontexts/(生成的程序里输入中文)
编译动态库
libfcitxplatforminputcontextplugin.so
配置环境
export PATH="~/目录/Qt/6.x.x/gcc_64/bin":$PATH
export PATH="~/目录/Qt/Tools/Cmake/bin":$PATH
“6.x.x”->自己的版本
配置环境的目地是为了可以使用cmake、qmake命令
安装一堆依赖
sudo apt install git
sudo apt-get install cmake
sudo apt install fcitx-libs-dev
sudo apt install extra-cmake-modules
sudo apt install libxkbcommon-dev
sudo apt install qt6-remoteobjects-dev
sudo apt-get install bisonsudo apt-get install libgl1-mesa-dev libglu1-mesa-dev
安装Git,获取fcitx-qt5源码
sudo apt install git
git clone http://github.com/fcitx/fcitx-qt5.git
编译项目
QT6
QT6版本修改make任务,切换到qt6(qt5不需要这一步骤)
①.手动进入源码目录 cd fcitx-qt5/
②.打开CMakeLists.txt文件 vi CMakeLists.txt
③.option(ENABLE_QT5 "Enable Qt5" On)改成option(ENAcmake_QT5 "Enable Qt5" Off)
④.option(ENABLE_QT6 "Enable Qt6 im module" Off)改成(ENABLE_QT6 "Enable Qt6 im module" On)
QT5
在控制台,先cd进源码目录
输入以下命令
mkdir build
cd build
cmake ../
make -j8
.编译好的文件叫libfcitxplatforminputcontextplugin-qt6.so
存放在fcitx-qt5/build/qt6/platforminputcontext/
.将编译好的文件复制到以下目录
~/目录/Qt/6.x.x/gcc_64/plugins/platforminputcontexts/
~/目录/Qt/Tools/QtCreator/lib/Qt/plugins/platforminputcontexts/
“目录”->自己的安装目录“6.x.x”->自己的版本
结尾
重启Qt就可以输入中文了。