解决 ibus 输入法系统无法在 Qt5 应用内输入中文的问题

前面就提到过我给我的电脑装上了 Win10 + Ubuntu 的双系统。由于我最近在自学 Qt,所以在系统装好后我就尝试在 Ubuntu 下配置了 Qt5 的开发环境。

而这两天在 Ubuntu 下尝试写一些 Qt 应用程序的时候,发现一个奇怪的问题: Qt Creator 内无法输入中文,并且在这种情况下写出来的 Qt 应用内也有同样的现象。

经过多次测试复现,发现可以在其他编辑器内写好中文后复制粘贴进去,且粘贴进去的中文不会影响到程序的正常运行,因此可以基本排除当前 Qt 环境本身不支持中文的可能,怀疑是输入法系统的相关问题导致的。

环境参数

下面是我出现此问题的开发环境的一些相关参数:

  • 系统版本:Ubuntu 18.04 LTS
  • 输入法系统:ibus
  • 输入法引擎:Rime
  • Qt版本:5.12.0
  • IDE版本:Qt Creator 4.8.1

解决方案

在一番搜索查找之后,最终证实这种现象是 ibus 和 Qt5 的一些兼容问题导致的,需要设置一下环境变量才可以正常使用,最终找到的实测有效解决方案如下:

编辑 /etc/profile 文件,在文件最后面加入

1
2
3
export GTK_IM_MODULE=ibus
export XMODIFIERS=@im=ibus
export QT_IM_MODULE=ibus

保存后重启一下系统即可。在重启后可以打开 Qt Creator 测试一下,应该是可以正常输入中文的了。