• Ubuntu下Qt(Retex)无法输入中文


    这个问题从我第一次在Ubuntu上使用Qt便困扰着我,奈何之前一直没认真去解决掉这个问题。今天作死想想,这个不可能解决不掉的。因为那么多人用Ubuntu,而且又那么多人用Qt的产品,比如Retext。不可能都不能用中文吧,按照这个思路,我决定把这个问题搞清除。

    网上有一份教程(应该说是很多份相同的教程,严重怀疑事不经认证的copy),如:http://www.th7.cn/system/lin/201407/63590.shtml
    我不清楚这份教程是适合那个版本的Ubuntu,但对我来说,那是一个不管用啊。坑的我来回卸载安装重启。最后还是不能用。

    我的系统刚安装没多久,版本号:Ubuntu14.10,Qt5.3.1。按理说我没安装一些乱七八糟的东西,库应该不会有问题的啊,而且输入法是严格按照搜狗输入法官网的方法安装的,自动安装了fcitx。
    检查一下系统安装的 fcitx系列包:

    ~$: dpkg -l fcitx*
    

    结果显示如下:
    //images0.cnblogs.com/blog2015/502942/201504/111944169154983.png

    其中,有一项:fcitx-frontend-qt5 是后来通过命令安装的。这个包也是Qt项目能在Ubuntu下输入中文的关键项目。

    网上和Qt的QQ群里找了一下资料发现需要安装fcitx-frontend-qt5 ,所以手动安装了一下,但发现系统中已经有了,所以应该不是这个问题。(我之前参照安装ibus-qt4的方式安装了一下fcitx*qt*)shell命令如下:

    ~$: sudo apt-get install fcitx*qt*
    

    但这种方式其实并没有解决问题,也不管用。
    最后急了,想是后是因为Qt找不到库文件呢,在QQ群里也得到了印证,所以尝试将fcitx-frontend-qt5输入法部分复制到Qt中:(我的Qt安装目录是:/home/myname/Qt5.3.1/)
    首先找到fcitx-frontend-qt5的库的安装位置:~$: dpkg -L fcitx-frontend-qt5

    ~$: sudo apt-get install fcitx-frontend-qt5
    ~$: sudo cp /usr/lib/x86_64-linux-gnu/qt5/plugins/platforminputcontexts/libfcitxplatforminputcontextplugin.so  /home/myname/Qt5.3.1/5.3/gcc_64/plugins/platforminputcontexts
    ~$: sudo cp /usr/lib/x86_64-linux-gnu/qt5/plugins/platforminputcontexts/libfcitxplatforminputcontextplugin.so  /home/myname/Qt5.3.1/Tools/QtCreator/bin/plugins/platforminputcontexts/
    

    然后再次重启QtCreator,O,GOD !还是不可以用了~~~~~但发现状态栏输入法部分有问题,遂更改之:输入法选择:搜狗输入法,文本输入选择EnZh,不是pinyin,再在QtCreator里测试了一下,呵呵,解决了~_~ 。

    我装了markdown编辑器Retext,同样也是不能输入中文,由于Retext也是基于Qt库,所以我想能不能也用此种方法解决呢。先查看Retext安装目录(我是使用终端进行安装的~$: sudo apt-get install retext):
    首先找Retext安装位置:~$: dpkg -l retext

    可以看到,基本是在目录:/usr/share/retext/,而且没找到plugins这样的目录,那我们就先测试一下copy到根下能不能用吧:

    ~$: sudo cp /usr/lib/x86_64-linux-gnu/qt5/plugins/platforminputcontexts/libfcitxplatforminputcontextplugin.so  /usr/share/retext
    

    复制后,打开Retext测试一下,发现,呵呵,能用中文了~~~~OY !
    此文档便是使用其进行编写的!
    至此,猜想,以后如果再遇到这种不能输入中文的问题,就将fcitx-frontend-qt5copy到程序目录下看看~~~想来其他的应该也是这样。由于网上的关于这方面的教程本人实测后都没有效果,所以将此方法记录下来,给还没有解决的人一个参照。

    最后,在QQ群里,有人向我推荐了一个博文:http://blog.csdn.net/crazyboy2009/article/details/38537099,后来看看,好吧,看来我得改进改进搜索方式了~~。看到有网友回复不能用,好像是因为:复制时要更改文件权限 shmod a+x。我的并没有出现这个问题,如果不能用,试一下改改权限。

    附录

    作者:Lomper 出处:http://www.cnblogs.com/lomper 关于作者:小菜鸟一枚,欢迎大神指点! 本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接.
  • 相关阅读:
    Qt自定义一个事件类型
    Qt正则表达式限制输入
    QtQuick随笔
    右值引用示例
    虚函数习题复习
    实现基于IOCP的回声服务器端
    以纯重叠I/O方式实现回声服务器端(windows)
    使用事件对象(重叠I/O)
    pipe mmap
    ubuntu下压缩和解压缩的命令用法
  • 原文地址:https://www.cnblogs.com/chinasoft/p/15992768.html
Copyright © 2020-2023  润新知