QtCreator无法输入中文问题

问题背景:
使用QT的QML开发出来的客户端程序无法在TextEdit框输入中文,当鼠标聚焦到输入光标后,压根切换不了中文输入法。网上找了一大堆,尝试了各种方案,终于解决了问题。至此,对这个问题也有了更多的认知,这里理顺下,方便你我。

问题现象:
1)在linux环境下安装QtCreator 4.8.1后,在编辑模式下无法切换到中文输入法,也无法输入中文
2)基于QT5.12.1开发的QML界面程序的所有输入框中,无法切换到文输入法,也无法输入中文

问题环境:
OS:Debian 9, 内核版本 4.9.0-12
Qt: 5.12.1
QtCreator: 4.8.1

唠叨几句:
Linux 下有两个输入法框架:ibus 和fcitx,这里使用的是fcitx框架,原因是网络搜索到它的资料比较多。。

Linux环境下常用的中文输入法有搜狗拼音和Google拼音,在安装中文输入法之前,需要先安装框架软件。

以debian系统为例,如果你安装时选择中文环境,那么安装系统后自带了fcitx框架软件和Google拼音输入法。如果你安装时选择英文环境,则需要自己安装fcitx框架软件和中文输入法。

解决上面输入法框架和中文输入法的问题后,你就可以在Terminal界面或者浏览器里输入中文了。但还不能在QtCreator和你开发出来的QT应用程序中输入中文,这里需要额外的fcitx-qt5库文件支持。

解决方案:
1、首先解决fcitx和中文输入法的安装

1)安装fcitx: sudo apt-get install fcitx
安装成功后,重启下操作系统,然后即可在debian的桌面左下角看到一个键盘的标志,你可以右击键盘标记选择configure, 也可以直接在系统搜索栏里搜索 Fcitx Configuration进行配置。

2)安装搜狗输入法
首先,下载搜狗输入法deb安装包 https://pinyin.sogou.com/linux/
其次,命令安装:
sudo dpkg -i sogoupinyin_版本号_amd64.deb
如果安装报依赖关系错误,则执行如下命令解决:
sudo apt -f install
然后再重新安装。
最后,重启操作系统后,正常就可以在Fcitx Configuration里看到搜狗输入法了。


如果此时,你可以在终端Terminal里输入中文,输入框架和输入法安装就ok了~

在这里插入图片描述

2、解决QtCreator工程文件中无法输入中文问题

QT平台之所以不支持中文输入,是因为没有对应fcitx框架的插件支持,把插件库放到QT对应的目录下即可解决问题。

可参考Linux下解决qtcreator中不能输入中文的问题_Turn X7的博客-CSDN博客 (该博客亲测可解决问题)获取libfcitxplatforminputcontextplugin.so库(我是直接将库文件安装到所有的platforminputcontexts目录下),如果不行可自行从如下百度网盘地址下载

链接: https://pan.baidu.com/s/1cqAI8A 密码: j3jq
下载上面链接里的libfcitxplatforminputcontextplugin.so库,然后拷贝到Qt的Tools/QtCreator/lib/Qt/plugins/platforminputcontexts目录下,修改文件权限后,重新启动QtCreator,问题解决。

3、解决使用QML开发的界面程序无法输入中文问题
将上一步的libfcitxplatforminputcontextplugin.so库文件同意拷贝到你的QT安装目录下,例 ***/Qt5.12.1/5.12.1/gcc_64/plugins/platforminputcontexts/ , 然后修改文件权限。然后再重新构建你的程序,此时构建出来的应用程序界面即可支持中文输入。也就是说,你的程序必须在有支持fcitx的QT插件的基础上编译出来,才可以支持中文输入。

PS:上面的libfcitxplatforminputcontextplugin.so库我本地环境安装后是有的,但是拷贝到QT中后不生效。可以理解为不兼容。
网上说这个库可以源码编译,我尝试了去编译,但遇到很多问题最后放弃了。然后直接下载别人编译好的库,这里表示感谢分享库的小伙伴。

 欢迎大家添加博主微信,备注“技术交流”,拉你进技术交流群

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值