【Linux】Qt Creator 中文输入法

Ubuntu 18.04 + Qt Creator 中文输入法终极解决


目录

  1. 前期准备:系统环境确认
  2. 第一步:完全卸载IBus,安装Fcitx4
  3. 第二步:安装Qt5输入法插件
  4. 第三步:复制输入法插件到Qt目录
  5. 第四步:解决桌面图标启动问题
  6. 第五步:解决终端启动问题
  7. 第六步:解决MobaXterm远程启动问题
  8. 验证所有场景
  9. 常见问题排查

1. 前期准备:系统环境确认

1.1 查看Ubuntu系统版本(最准确方法)

bash 复制代码
lsb_release -a

输出示例:

复制代码
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 18.04.6 LTS
Release:        18.04
Codename:       bionic

重点看Release字段 ,这就是你的Ubuntu版本号。

1.2 查看当前输入法框架

bash 复制代码
echo $XMODIFIERS
  • 输出@im=ibus:当前使用IBus(建议卸载
  • 输出@im=fcitx:当前使用Fcitx4(推荐)

1.3 查找你的Qt安装路径(非常重要!必须自己确认)

官网下载的Qt安装路径不固定,不要假设路径,一定要自己找!

bash 复制代码
# 查找Qt安装目录(只搜索/opt和/home,最大深度4层,速度更快)
sudo find /opt /home -maxdepth 4 -name "Qt*" -type d 2>/dev/null

输出示例:

复制代码
/opt/Qt5.12.9
/opt/Qt5.12.9/5.12.9
/opt/Qt5.12.9/Tools

这说明我的Qt安装在/opt/Qt5.12.9后面所有命令都要替换成你自己的路径


2. 第一步:完全卸载IBus,安装Fcitx4

这是Ubuntu 18.04下的最优方案,Fcitx4的稳定性和Qt兼容性远优于IBus。

2.1 彻底卸载IBus(不留任何残留)

bash 复制代码
# 强制卸载所有IBus相关包
sudo apt purge ibus ibus-gtk ibus-gtk3 ibus-qt4 ibus-qt5 ibus-clutter ibus-sunpinyin ibus-pinyin -y

# 自动清理所有残留依赖
sudo apt autoremove -y
sudo apt autoclean

# 删除IBus残留配置文件
rm -rf ~/.config/ibus ~/.cache/ibus

2.2 安装Fcitx4完整中文输入法环境

bash 复制代码
# 更新软件源
sudo apt update

# 安装Fcitx4核心框架 + 谷歌拼音 + 云拼音 + 配置工具
sudo apt install fcitx fcitx-config-gtk fcitx-googlepinyin fcitx-module-cloudpinyin fcitx-ui-classic -y

2.3 设置Fcitx4为系统唯一默认输入法框架

bash 复制代码
im-config

执行后会弹出图形界面,严格按照以下步骤操作:

  1. 点击"确定"
  2. 选择"fcitx"(注意:Ubuntu 18.04没有官方fcitx5,不要选其他
  3. 再次点击"确定"
  4. 系统会提示"需要注销才能生效",点击"确定"

2.4 注销并重新登录系统

这一步绝对不能跳过,否则输入法框架不会切换。

2.5 添加并配置中文输入法

  1. 右键点击系统托盘的键盘图标(Fcitx4图标)
  2. 选择"配置"
  3. 点击左下角的**"+"号**
  4. 取消勾选右上角的"只显示当前语言"
  5. 在搜索框输入"Google Pinyin"
  6. 选中"Google Pinyin",点击"确定"
  7. 使用右侧的上下箭头,将"Google Pinyin"移到第二位
  8. 关闭配置窗口

3. 第二步:安装Qt5输入法插件

bash 复制代码
sudo apt install fcitx-frontend-qt5 -y

4. 第三步:复制输入法插件到Qt目录

4.1 先确认"翻译官"文件已经存在

bash 复制代码
ls /usr/lib/x86_64-linux-gnu/qt5/plugins/platforminputcontexts/libfcitxplatforminputcontextplugin.so

✅ 如果输出了这个完整路径,说明文件存在,继续下一步

❌ 如果提示"没有那个文件或目录",先执行:sudo apt install fcitx-frontend-qt5 -y

4.2 复制插件到Qt Creator内部目录

将下面命令中的/opt/Qt5.12.9替换成你自己的Qt安装路径

bash 复制代码
# 复制插件文件
sudo cp /usr/lib/x86_64-linux-gnu/qt5/plugins/platforminputcontexts/libfcitxplatforminputcontextplugin.so /opt/Qt5.12.9/Tools/QtCreator/lib/Qt/plugins/platforminputcontexts/

# 赋予可执行权限(必须执行!)
sudo chmod +x /opt/Qt5.12.9/Tools/QtCreator/lib/Qt/plugins/platforminputcontexts/libfcitxplatforminputcontextplugin.so

4.3 复制插件到Qt编译环境目录(强烈建议)

(待验证)


5. 第四步:解决桌面图标启动问题

官网下载的Qt 5.12.9不会自动把启动器文件放到/usr/share/applications/,而是藏在它自己的安装目录里。

5.1 复制Qt自带的启动器文件到系统应用目录

bash 复制代码
# 复制Qt自带的启动器文件
sudo cp /opt/Qt5.12.9/Tools/QtCreator/share/applications/org.qt-project.qtcreator.desktop /usr/share/applications/

5.2 编辑这个启动器文件添加环境变量

bash 复制代码
sudo gedit /usr/share/applications/org.qt-project.qtcreator.desktop

5.3 修改Exec行(最重要的一步)

找到以Exec=开头的那一行,在qtcreator前面添加env QT_IM_MODULE=fcitx XMODIFIERS=@im=fcitx

修改前:

ini 复制代码
Exec=/opt/Qt5.12.9/Tools/QtCreator/bin/qtcreator %F

修改后:

ini 复制代码
Exec=env QT_IM_MODULE=fcitx XMODIFIERS=@im=fcitx /opt/Qt5.12.9/Tools/QtCreator/bin/qtcreator %F

5.4 保存文件并更新桌面数据库

bash 复制代码
sudo update-desktop-database

6. 第五步:解决终端启动问题

Ubuntu 18.04的GNOME终端默认以"非登录Shell"启动,只会读取~/.bashrc文件。

6.1 编辑.bashrc文件

bash 复制代码
gedit ~/.bashrc

6.2 添加环境变量

在文件最末尾 添加以下内容(建议要删除所有残留的ibus环境变量!):

bash 复制代码
# Fcitx输入法环境变量
export GTK_IM_MODULE=fcitx
export QT_IM_MODULE=fcitx
export XMODIFIERS=@im=fcitx

# Qt Creator路径(替换成你自己的路径)
export PATH=$PATH:/opt/Qt5.12.9/Tools/QtCreator/bin

6.3 让修改立即生效

bash 复制代码
source ~/.bashrc

7. 第六步:解决MobaXterm远程启动问题

7.1 问题原因

MobaXterm远程SSH连接默认不会创建DBus会话,而Qt Creator和fcitx之间需要通过DBus通信。

7.2 一键启动命令

bash 复制代码
# 杀死旧的fcitx进程
pkill fcitx

# 启动fcitx输入法
fcitx -d

# 用dbus-launch启动Qt Creator(创建DBus会话)
dbus-launch qtcreator

7.3 创建永久别名

bash 复制代码
gedit ~/.bashrc

在文件末尾添加:

bash 复制代码
# MobaXterm远程启动Qt Creator专用命令
alias qtcreator-remote='pkill fcitx; sleep 0.5; fcitx -d; sleep 0.5; dbus-launch qtcreator'

保存后生效:

bash 复制代码
source ~/.bashrc

以后在MobaXterm中只需输入:

bash 复制代码
qtcreator

7.4 MobaXterm客户端优化设置

  1. 打开MobaXterm -> Settings -> Configuration -> X11
  2. 确保以下选项已勾选:
    • ✅ Enable X11 forwarding
    • ✅ Use local X server
  3. X11 remote access下拉菜单中选择Full
  4. 点击OK保存设置
  5. 关闭所有MobaXterm窗口,重新打开连接

8. 验证所有场景

8.1 本地桌面图标启动

  1. 从系统启动器打开Qt Creator
  2. Shift+Space切换到中文输入法(自定义的)
  3. 在代码编辑器中测试输入中文

8.2 本地终端启动

  1. 打开终端
  2. 输入qtcreator启动
  3. 测试中文输入

8.3 MobaXterm远程启动

  1. 打开MobaXterm连接到Ubuntu
  2. 输入qtcreator-remote启动
  3. 测试中文输入

9. 常见问题排查

9.1 插件加载问题排查(最常用)

如果Qt Creator还是无法输入中文,用这个命令查看插件加载日志:

bash 复制代码
# 自动启动Qt Creator并只显示和fcitx相关的日志
export QT_DEBUG_PLUGINS=1 && /opt/Qt5.12.9/Tools/QtCreator/bin/qtcreator 2>&1 | grep -i fcitx

正常输出应该是:

复制代码
QFactoryLoader::QFactoryLoader() looking at "/opt/Qt5.12.9/Tools/QtCreator/lib/Qt/plugins/platforminputcontexts/libfcitxplatforminputcontextplugin.so"
Found metadata in lib /opt/Qt5.12.9/Tools/QtCreator/lib/Qt/plugins/platforminputcontexts/libfcitxplatforminputcontextplugin.so, metadata=
            "fcitx"
    "className": "QFcitxPlatformInputContextPlugin",
Got keys from plugin meta data ("fcitx")

如果看到Cannot load library错误,说明插件版本不兼容或路径错误。

9.2 其他常见问题

  • 终端启动可以,桌面图标启动不行 :检查启动器文件中的Exec=行是否正确,执行sudo update-desktop-database
  • 本地可以,远程不行 :确保使用dbus-launch启动,检查MobaXterm的X11设置
  • 系统托盘没有输入法图标 :手动执行fcitx -d启动

如果这篇文章对你有帮助,欢迎点赞、收藏、关注!有任何问题可以在评论区留言,我会一一回复。

相关推荐
Jun6261 小时前
QT(5)-第三方日志系统
开发语言·数据库·qt
smallswan1 小时前
第十四 算数运算
linux·服务器·前端
丑过三八线1 小时前
Umi 配置文件 .umirc.ts 详解
linux·运维·ubuntu·react.js
zh路西法1 小时前
【rosbridge-websocket】跨网络的ROS1与ROS2通讯法(上)
linux·网络·c++·python·websocket·网络协议
zincsweet1 小时前
Linux线程原理深度剖析:从CPU调度到pthread实现
linux·服务器
A_humble_scholar1 小时前
Linux(三)深入理解 Makefile:自动变量、增量编译原理与文件时间属性
linux·服务器·c++·makefile
sycmancia1 小时前
Qt——多页面切换组件
开发语言·qt
思麟呀1 小时前
C++11并发编程:条件变量
java·linux·jvm·c++·windows
树冰之辉1 小时前
label-studio部署方式(linux版本)
linux