Qt程序无法输入中文及其中文乱码的问题
一.问题
在Linux环境下,用Qt编写的程序运行时不能在诸如输入框、文本框中输入中文(不会激活中文输入法)。
注意与输入法类型有关(基于iBus或Fcitx)
二.原因
Qt程序的中文输入支持需要用Qt插件,Qt自带的插件中,支持iBus输入法,所以如果你恰好在用iBus输入法则可以正常输入。
如果要支持Fcitx输入法,需要插件支持。
三.解决方法
1.QtCreator本身的编辑器不能输入中文
1.1安装fcitx-libs-qt或fcitx-libs-qt5
我的电脑已安装过,未安装的自行搜索安装教程
在计算机中搜索libfcitxplatforminputcontextplugin.so文件:
dpkg -L fcitx-frontend-qt5 | grep .so
例如在我的计算机上,此文件位于:
/usr/lib/x86_64-linux-gnu/qt5/plugins/platforminputcontexts/libfcitxplatforminputcontextplugin.so
如图:
1.2将上述文件拷贝至Qt安装目录的platforminputcontexts文件夹下:
[Qt安装目录]/Tools/QtCreator/lib/Qt/plugins/platforminputcontexts
例如在我的计算机上,此文件夹位于:
/opt/Qt/Tools/QtCreator/lib/Qt/plugins/platforminputcontexts
在终端输入:
$ sudo cp /usr/lib/x86_64-linux-gnu/qt5/plugins/platforminputcontexts/libfcitxplatforminputcontextplugin.so /opt/Qt/Tools/QtCreator/lib/Qt/plugins/platforminputcontexts
执行拷贝操作后如图:
1.3赋予权限:
chmod +x libfcitxplatforminputcontextplugin.so
1.4 重启Qt Creator
便如图可成功输入中文注释:
2.中文显示乱码
在菜单栏->工具->选项中打开如图的窗口->选择文本编辑器->选择Behavior->右下角文件编码的默认编码选择为UTF-8