[other] QtCreator无法输入中文情况解决方案
Tofloor
poster avatar
Free_Aaron.Li
deepin
2024-11-10 13:18
Author

QtCreator 无法输入中文

问题:当使用 fcitx5 时,无法对 QtCreator 输入中文。

原因:QtCreator 缺乏 libfcitx5platforminputcontextplugin.so 动态链接库文件。

对此,我们需要通过编译 fcitx 5-qt 获得该动态链接库文件。

1. 安装依赖

sudo apt-get install libxkbcommon-x11-dev libxcb1-dev libx11-xcb-dev libxcb-glx0-dev libxcb-shape0-dev libxcb-xfixes0-dev extra-cmake-modules libgl1-mesa-dev

2. 配置编译环境

💡

以下路径均为笔者自定义 Qt 环境配置,请根据自身情况做出合理更改。

在使用 Qt 在线软件安装时,默认情况 Qt 安装路径:非 root 账户在 ~/Qt 下,root 账户在 /opt/Qt 下。

2.1 下载 fcitx5-qt

git clone https://github.com/fcitx/fcitx5-qt.git
# 或者使用ssh,需要与github进行ssh连接
git clone [email protected]:fcitx/fcitx5-qt.git

2.2 配置临时环境变量

💡

根据下载的 QtCreator 严格确定 Qt 版本。

可以从 QtCreator帮助->About Qt Creator 中查看到类似于“Based on Qt xxx (GCC ...)”的语句,确定需要的 Qt 版本。

一般来说,构建 QtCreator 的 Qt 版本比当时最新发行版本低一级。

# 进入fcitx5-qt文件夹
cd fcitx5-qt
# 创建构建文件夹
mkdir build
# 设置QtCreator库文件环境
export LD_LIBRARY_PATH=/home/aaron/enviroment/qt/Tools/QtCreator/lib/Qt/lib
# 设置Qt环境
export PATH=/home/aaron/enviroment/qt/6.7.3/gcc_64/bin:$PATH

2.3 定义 CMake 构建选项

有一些选项是我们不需要的,可以进行自定义选择。

vim CMakeLists.txt 

在这里,我选择进行以下配置:

option(ENABLE_QT4 "Enable Qt 4" Off) # 支持 qt4
option(ENABLE_QT5 "Enable Qt 5" Off) # 支持 Qt5
option(ENABLE_QT6 "Enable Qt 6" On)  # 支持 Qt6
option(ENABLE_X11 "Enable X11 support" On) # 支持 X11
option(BUILD_ONLY_PLUGIN "Build only plugin" On) # 仅构建插件
option(BUILD_STATIC_PLUGIN "Build plugin as static" Off) # 构建静态链接库文件
option(WITH_FCITX_PLUGIN_NAME "Enable plugin name with fcitx" On) # 库文件名包含fcitx
option(ENABLE_QT6_WAYLAND_WORKAROUND "Enable Qt6 Wayland workaround" Off) # 支持 Wayland

2.4 编译

# cmake 编译
cmake -DCMAKE_BUILD_TYPE=Release \
-DCMAKE_POSITION_INDEPENDENT_CODE=ON \
-B build/
# make 编译
cd build
make

如果没有意外,我们应该可以在 build 目录下找到我们所需要的动态链接库文件,具体位置为:

fcitx5-qt/build/qt6/platforminputcontext/libfcitx5platforminputcontextplugin.so

2.6 迁移插件

cd qt6/platforminputcontext/
# 设置权限(建议为完整权限)
chmod 777 ./libfcitx5platforminputcontextplugin.so
# 复制到QtCreator库目录下
cp ./libfcitx5platforminputcontextplugin.so ~/enviroment/qt/Tools/QtCreator/lib/Qt/plugins/platforminputcontexts/
# 复制到对应版本的Qt目录下
cp ./libfcitx5platforminputcontextplugin.so ~/enviroment/qt/6.7.3/gcc_64/plugins/platforminputcontexts/

如无出意外, QtCreator 应该可以正常输入中文。


参考

Qt6 Creator 无法用 Fcitx5 输入中文

Reply Favorite View the author
All Replies
mozixun
deepin
2024-11-10 14:39
#1

用VSCode写Qt怎么样

Reply View the author
Free_Aaron.Li
deepin
2024-11-10 15:15
#2
mozixun

用VSCode写Qt怎么样

我没有尝试过使用VScode写C++代码😂 ,一直都是使用CLion。


如果谈CLion与QtCreator的话,我觉得二者相互配合很丝滑。

Reply View the author
sammy-621
deepin
2024-11-10 18:26
#3

👍

有个非常关键的问题,就是一定要使用与Qt Creator相同的Qt 版本,进行编译,否则生成的插件仍然不好用。

image.png

打个比方,如果你机器上只装了5.15.2版本的kits,那你需要再装一下与Qt Creator相同版本的kits(我的是6.6.3)。

image.png

Reply View the author
小鱼贝壳
deepin
2024-11-10 23:40
#4

like like

Reply View the author
Oli
deepin
2024-11-11 00:52
#5

不错

Reply View the author
red13
deepin
2024-11-11 01:12
#6

其它QT程序需要输入法的也是同样,看看有没有办法整理一下各版本QT的输入法插件 ,有的时候为了一个输入法要去弄一套QT回来编译,真心累.....弄个合集.往plugins/platforminputcontexts目录里放入对应QT版本的libfcitx5platforminputcontextplugin.so目测也是好使的

Reply View the author
okk~
deepin
2024-11-11 02:19
#7

赞了

Reply View the author
zccrs
deepin
2024-11-12 17:02
#8

直接用系统仓库里的QtCreator

Reply View the author