由于搜狗输入法依赖fcitx,所以我们解决该问题的核心操作是为QtCreator提供支持fcitx
本系统环境说明:ubuntu22.04、Qt5.12.8、Qt6.6.1(我安装了Qt5、Qt6)
一、尝试拷贝系统自带libfcitxplatforminputcontextplugin.so到Qt安装目录/Tools/QtCreator/lib/Qt/plugins/platforminputcontexts/
参考链接:https://blog.51cto.com/wangguangjie/4753356
注意:我只拷贝到了上述博客的路径1中了,并且我拷贝完成后依旧无法输入中文,可能原因是命令安装的fcitx版本只支持Qt4编写的QtCreator与目前主流的QtCreator不兼容(目前主流的QtCreator均使用Qt编写)
二、下载fcitx-qt5自己编译
下载链接:GitHub - fcitx/fcitx-qt5: Fcitx support for Qt5
步骤:
解压源码,创建编译目录build,然后执行cmake命令,如下图:
解决上图编译中报错:
参考链接:cmake fcitx-qt5时报错"ECM" - SegmentFault 思否
sudo apt install mesa-common-dev libglu1-mesa-dev
安装完后接着编译 ,如下图:
参考链接:https://www.cnblogs.com/brifuture/p/9634219.html
sudo apt install libxkbcommon-dev
接着编译,接下来会出现下图错误:
因此我们需要更改环境变量添加CMAKE_PREFIX_PATH,因为我同时安装了Qt5和Qt6所以添加了两个路径
由于我是双Qt,并且我只需要编译插件,所以我对源码的顶层CMakeLists.txt做了以下更改
主要是打开了Qt6编译 关闭Qt library编译以及更改了Qt版本变,编译成功如下图:
接下来就是拷贝编译生成的库,以及重新启动QtCreator
sudo cp libfcitxplatforminputcontextplugin.so /opt/Qt/Qt5.12.8/Tools/QtCreator/lib/Qt/plugins/platforminputcontexts/
sudo cp libfcitxplatforminputcontextplugin-qt6.so /opt/Qt/Qt6.6/Tools/QtCreator/lib/Qt/plugins/platforminputcontexts/